yii2.0支持migrate数据迁移,使用数据迁移可以对数据库进行版本化的管理,方便了数据库的管理和操作。
一、创建迁移(生成的迁移文件位置:app\console\migrations\)
1、创建blog表
使用create_blog_table
这个名称并运行如下命令:
yii migrate/create create_blog_table
代码结构如下:
<?php
use yii\db\Migration;
use yii\db\Schema;
class m170926_085221_create_blog_table extends Migration
{
public function up()
{
$this->createTable('blog', [
'id' => Schema::TYPE_PK." comment 'blog表id' ",
'title' => Schema::TYPE_STRING." comment 'blog标题' ",
'content' => Schema::TYPE_TEXT." comment 'blog内容' ",
'column_id' => Schema::TYPE_INTEGER." comment '分类id' ",
'create_at' => Schema::TYPE_INTEGER." comment '发布时间' ",
]);
}
public function down()
{
$this->dropTable('blog');
}
}
当你通过 migration 创建一张表或者字段的时候,你应该使用 抽象类型 而不是 实体类型, 这样一来你的迁移对象就可以从特定的 DBMS 当中抽离出来。 yii\db\Schema 类定义了一整套可用的抽象类型常量。这些常量的格式为 TYPE_<Name>
。推荐使用Schema抽象数据类,它可以用字符串的形式添加字段属性,使用更灵活。
2、添加review字段
使用add_review_to_blog
这个名称并运行如下命令:
yii migrate/create add_review_to_blog
代码如下
<?php
use yii\db\Migration;
use yii\db\Schema;
class m170927_011743_add_review_to_blog extends Migration
{
public function up()
{
$this->addColumn('blog','review',Schema::TYPE_BOOLEAN." default false comment '审核' ");
}
public function down()
{
$this->dropColumn('blog','review');
}
}
二、执行迁移
1、执行全部迁移
yii migrate
2、执行某个迁移文件
yii migrate/to m170927_011743_add_review_to_blog
三、还原迁移
yii migrate/down # revert the most recently applied migration 还原最近一次提交的迁移
yii migrate/down3# revert the most 3 recently applied migrations 还原最近三次提交的迁移
四、重做迁移
重做迁移的意思是先还原指定的迁移,然后再次提交。 如下所示:
yii migrate/redo # redo the last applied migration 重做最近一次提交的迁移
yii migrate/redo 3 # redo the last 3 applied migrations 重做最近三次提交的迁移
五、列出迁移
你可以使用如下命令列出那些提交了的或者是还未提交的迁移:
yii migrate/history # 显示最近10次提交的迁移
yii migrate/history 5 # 显示最近5次提交的迁移
yii migrate/history all # 显示所有已经提交过的迁移
yii migrate/new # 显示前10个还未提交的迁移
yii migrate/new 5 # 显示前5个还未提交的迁移
yii migrate/new all # 显示所有还未提交的迁移
其他详细内容,参考
yii2.0权威指南
-------------------------------------------------------------
gii的使用
当表创建成功后就可以使用gii这个组件快速生成 model 和 crud 操作了
直接访问:/gii 可视化化操作