erikgreasy / wp-db-migrations
该软件包最新版本(0.1.1)没有提供许可证信息。
受Laravel框架启发的WordPress数据库迁移。
0.1.1
2022-10-21 19:40 UTC
This package is not auto-updated.
Last update: 2024-09-23 01:13:23 UTC
README
受Laravel框架启发的WordPress数据库迁移。
安装
您可以通过几种方式安装WP DB迁移
1. 安装为mu-plugin。
下载最新版本的ZIP文件并将其解压缩到您的mu-plugins中。您需要一个类型的必须使用插件自动加载器才能使此操作生效,例如Bedrock Autoloader。
2. 安装为常规插件
下载最新版本的ZIP文件并将其解压缩到您的plugins中,或者通过wp-admin插件部分安装。
入门
注册迁移文件夹
当使用WP CLI命令运行迁移时,插件会扫描所有注册为“迁移文件夹”的文件夹。迁移文件夹基本上是您插件/主题中的一个文件夹,其中存储着您的迁移。
插件支持注册多个迁移文件夹,因此您可以针对多个插件使用单独的迁移文件夹。
要注册新的迁移文件夹,请使用以下WP过滤器
add_filter('dbmigrator_migrations_dirs', function($migrationDirs) { $migrationDirs[] = __DIR__ . '/my_plugin_migrations'; return $migrationDirs; });
创建您的第一个迁移文件
迁移文件只是一个遵循特定结构的PHP文件,因此插件可以扫描此文件并运行。
迁移结构
简单的示例迁移可能如下所示
<?php // 001_reviewplugin_create_test_table.php use DbMigrator\Migration; return new class extends Migration { public function up() { $tableName = $this->getPrefixedTable('test'); $charset_collate = $this->wpdb->get_charset_collate(); $sql = "CREATE TABLE $tableName ( id int(11) NOT NULL auto_increment, name varchar(60) NOT NULL, UNIQUE KEY id (id) ) $charset_collate;"; $this->wpdb->query($sql); } };
从上面的示例中可以得出以下几个重要点
- 我们使用PHP 匿名类,它扩展了基Migration类。此基类提供了一些用于与wpdb一起使用的方法和属性。
- up()方法是必需的,它包含所有迁移逻辑
- 迁移文件的命名约定如下
- 使用索引(例如001)作为迁移的前缀
- 使用某种类型的标识符(例如reviewplugin)
- 文件名剩余部分应描述迁移执行的操作
- 使用snake_case以获得更好的可读性
创建迁移文件
您可以手动创建迁移文件,或者可以使用WP CLI命令生成它们
wp migrator make:migration 001_your_migration_name
它将在命令运行的目录中创建具有指定名称的空迁移。
运行您的迁移
现在您已准备好运行迁移。要运行迁移,请使用WP CLI命令
wp migrator migrate
将此命令添加到您的应用程序的部署脚本中,或手动运行该命令。
或者,您可以直接运行迁移而无需使用WP_CLI,通过调用Migrator方法。例如,这可以在插件激活期间完成
register_activation_hook(__FILE__, function() { (new \DbMigrator\Migrator())->migrate(); });