Yii2仅运行特定的迁移

时间:2018-07-08 14:18:00

标签: mysql yii yii2 database-migration

在Yii2中,当我使用

  

yii迁移

命令,我会得到一长串剩余的迁移信息。如何仅在列表中运行一个特定的迁移而又不执行其他迁移?

4 个答案:

答案 0 :(得分:10)

运行migrate/history以列出已应用的迁移:

./yii migrate/history 

复制您要稍后返回的迁移名称(假设它是'm160101_185401_initial_migration')。将其保存在某个地方,因为稍后您将需要它。

在需要运行的迁移记录之前标记迁移历史记录

./yii migrate/mark m170101_185401_create_news_table

运行一次迁移:

./yii migrate 1

重置迁移历史记录:

./yii migrate/mark m160101_185401_initial_migration

答案 1 :(得分:1)

yii migrate --migrationPath=@app/modules/forum/

答案 2 :(得分:0)

如果要跳过某些已在数据库中实现的迁移而不运行迁移,则可以设置迁移状态而不运行它们。

通过“标记”迁移,您还可以确保不再提示他们,并将其视为“完成”。

您可以在Yii文档here

中了解有关标记的信息

答案 3 :(得分:0)

To run specific migration, you can mark(skip) migrations upto just before one you want run. You can mark migration by using one of following command:

  1. Using timestamp to specify the migration yii migrate/mark 150101_185401
  2. Using a string that can be parsed by strtotime() yii migrate/mark "2015-01-01 18:54:01"
  3. Using full nameyii migrate/mark m150101_185401_create_news_table
  4. Using UNIX timestamp yii migrate/mark 1392853618