antonyz89 / yii2-migrate
1.0
2020-09-18 20:56 UTC
Requires
- antonyz89/yii2-seeder: *
- yiisoft/yii2: ^2.0.5
README
安装
安装此扩展的首选方式是通过 composer.
运行以下命令之一
php composer.phar require --prefer-dist antonyz89/yii2-migrate dev-master
或在您的 composer.json
文件的 require 部分添加以下内容
"antonyz89/yii2-migrate": "dev-master"
require
用法
console/config/main.php
'controllerMap' => [
'migrate' => [
'class' => 'antonyz89\migrate\MigrateController'
],
],
迁移命令
yii migrate/create
yii migrate/fresh
yii migrate/full
( Fresh + Seeder ) ( 需要 antonyz89/yii2-seeder )
迁移
不再需要创建索引和外键,以 _id
结尾的列将与之前 _id
的名称相关联的外键关联。
示例
company_id
列是 company
表的外键。
如果这不是这种情况,请将您的列添加到变量 $ignoreColumns
中,这些列将不会自动与索引或外键关联。
public $ignoreColumns = [ 'company_id' ];
要禁用所有列的索引和外键关联,只需将 $autoGenerateIndexAndForeignKey
赋值为 false
public $autoGenerateIndexAndForeignKey = true;
当单独添加列 (addColumn()
) 时,如果列符合上述模式,则会生成索引和外键。禁用自动关联的步骤相同
当删除列 (dropColumn()
) 时,如果存在外键,则会自动删除。如果出于某种原因不想这样做,只需将 public $autoDropForeignKey = false;
或将列添加到 $ignoreColumns
中以禁用特定列的关联。
要创建索引和外键,请使用 indexAndForeignKey($column, $options = [])
$options
示例
$options = [ 'table' => '{{%user}}', 'ref_table' => 'company', 'ref_table_id' => 'id', 'delete' => 'CASCADE', 'update' => 'CASCADE' ]; // in migrate $this->indexAndForeignKey('company_id', $options);
要设置全局默认的 ON UPDATE
和 ON DELETE
值,请在 bootstrap.php
中替换 Migration::$onDelete
和 Migration::$onUpdate
use antonyz89\migrate\Migration; Migration::$onDelete = 'RESTRICT'; // default: CASCADE Migration::$onUpdate = 'CASCADE'; // default: CASCADE