yii2 migrate
yii2 2019-12-04 13:46:50

如果需要新建数据表,执行:

php ./yii migrate/create 表名

会在migrations文件夹下生成一个文件

创建完以后,up方法用来编写改变数据库结构的代码;down方法中编写代码来恢复由up方法所做的改变。当使用migration升级数据库时,up方法会被调用,反之,down方法会被调用。

 

PS:
$this->string(300)->notNull()这样的代码指的是抽象定义字段类型,什么是抽象定义字段类型?就是说我并不直接写字段的类型,我只是写不同数据库中类似的字段定义。举个例子:

mysql数据库中有text数据类型,用来存储大文本一类数据。而mssql数据库中并没有text数据类型,但是有个类似的数据类型,叫做ntext。如果在数据库迁移到mysql的时候直接写实体字段类型text,那么如果改换数据库mssql的时候就会很麻烦。使用抽象定义字段类型,就可以避免这个问题。他会根据你选择的数据库与定义的抽象字段类型灵活改变。

如下是所有这些数据库访问方法的列表:

PHP Code复制内容到剪贴板
  1. yii\db\Migration::execute(): 执行一条 SQL 语句  
  2. yii\db\Migration::insert(): 插入单行数据  
  3. yii\db\Migration::batchInsert(): 插入多行数据  
  4. yii\db\Migration::update(): 更新数据  
  5. yii\db\Migration::delete(): 删除数据  
  6. yii\db\Migration::createTable(): 创建表  
  7. yii\db\Migration::renameTable(): 重命名表名  
  8. yii\db\Migration::dropTable(): 删除一张表  
  9. yii\db\Migration::truncateTable(): 清空表中的所有数据  
  10. yii\db\Migration::addColumn(): 加一个字段  
  11. yii\db\Migration::renameColumn(): 重命名字段名称  
  12. yii\db\Migration::dropColumn(): 删除一个字段  
  13. yii\db\Migration::alterColumn(): 修改字段  
  14. yii\db\Migration::addPrimaryKey(): 添加一个主键  
  15. yii\db\Migration::dropPrimaryKey(): 删除一个主键  
  16. yii\db\Migration::addForeignKey(): 添加一个外键  
  17. yii\db\Migration::dropForeignKey(): 删除一个外键  
  18. yii\db\Migration::createIndex(): 创建一个索引  
  19. yii\db\Migration::dropIndex(): 删除一个索引  

 

提交迁移:

可以执行如下:

PHP Code复制内容到剪贴板
  1. .\yii migrate  


这个指令会提交所有的迁移

或者这样,指定类名,提交一个迁移

PHP Code复制内容到剪贴板
  1. .\yii migrate m160623_034801_create_test_table  

数据库中会出现一个叫做migration的表,用来记录迁移记录

 

还原迁移:

还原最近一次迁移:

PHP Code复制内容到剪贴板
  1. .\yii migrate/down  

还原最近三次迁移:

PHP Code复制内容到剪贴板
  1. .\yii migrate/down 3  

 

重做迁移:

重做迁移的意思是先还原指定的迁移,然后再次提交:

PHP Code复制内容到剪贴板
  1. .\yii migrate/redo  ##重做最近一次提交的迁移  
  2. .\yii migrate/redo 3 ##重做最近三次提交的迁移  

 

列出迁移

可以通过指令列出提交或者未提交的迁移:

PHP Code复制内容到剪贴板
  1. .\yii migrate/history  #显示最近10次提交的迁移  
  2. .\yii migrate/history 6 #显示最近5次提交的迁移  
  3. .\yii migrate/history all #显示所有的提交迁移  
  4.   
  5. .\yii migrate/new #显示最近10次未提交的迁移  
  6. .\yii migrate/new 6 #显示最近6次未提交的迁移  
  7. .\yii migrate/new all #显示所有的未提交迁移  

 

 

 

 

 

 

本文来自于:http://www.yoyo88.cn/study/yii2/480.html

Powered by yoyo苏ICP备15045725号