rmrevin / yii2-power-migration
Yii2的迁移扩展。
1.1.2
2015-05-18 17:44 UTC
Requires
- yiisoft/yii2: ~2.0
This package is not auto-updated.
Last update: 2024-09-14 17:37:20 UTC
README
功能
- 如果迁移失败,则完全回滚(例如,在MySQL中,回滚不会回滚新创建或删除的表 https://dev.mysqlserver.cn/doc/refman/5.0/en/cannot-roll-back.html)
安装
在 composer.json
中
{
"require": {
"rmrevin/yii2-power-migration": "~1.1"
}
}
配置
/config/console.php
<? return [ // ... 'controllerMap' => [ // ... 'migrate' => [ 'class' => yii\console\controllers\MigrateController::class, 'templateFile' => '@vendor/rmrevin/yii2-power-migration/template.php', ], ], // ... ];
用法
<? use yii\db\Schema; use rmrevin\yii\db\migration; class m140317_055355_file extends migration\PowerMigration { public function instructions() { return [ 'createTableFile', 'createTableFileLink', ]; } public function createTableFile_up() { $this->createTable('{{%file}}', [ 'id' => Schema::TYPE_PK, 'mime' => Schema::TYPE_STRING . ' NOT NULL', 'size' => Schema::TYPE_BIGINT . ' NOT NULL DEFAULT 0', 'name' => Schema::TYPE_STRING . ' NOT NULL', 'origin_name' => Schema::TYPE_STRING . ' NOT NULL', 'sha1' => Schema::TYPE_STRING . '(40) NOT NULL', 'image_bad' => Schema::TYPE_BOOLEAN . ' NOT NULL DEFAULT 0', ]); } public function createTableFile_down() { $this->dropTable('{{%file}}'); } public function createTableFileLink_up() { $this->createTable('{{%file_link}}', [ 'file_id' => Schema::TYPE_PK, 'url' => Schema::TYPE_STRING . ' NOT NULL', ]); } public function createTableFileLink_down() { $this->dropTable('{{%file_link}}'); } }