antonyz89/yii2-migrate

安装数: 1,361

依赖项: 0

建议者: 0

安全性: 0

星标: 1

关注者: 3

分支: 0

类型:yii2-extension

1.0 2020-09-18 20:56 UTC

This package is auto-updated.

Last update: 2024-09-27 08:56:50 UTC


README

Donate with PayPal

安装

安装此扩展的首选方式是通过 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 UPDATEON DELETE 值,请在 bootstrap.php 中替换 Migration::$onDelete Migration::$onUpdate

use antonyz89\migrate\Migration;

Migration::$onDelete = 'RESTRICT'; // default: CASCADE
Migration::$onUpdate = 'CASCADE'; // default: CASCADE