Yii2 运行 仅特定迁移

Yii2 run only specific migration

在 Yii2 中,当我使用

yii migrate

命令,我得到了一长串剩余迁移。我如何才能只 运行 列表中的一个特定迁移而不执行其他迁移?

如果您想跳过一些已在您的数据库中实现但没有 运行 迁移的迁移,您可以设置没有 运行 它们的迁移状态。

通过 "marking" 迁移,您还保证它们将不再被重新提示,并将被视为 "done"。

您可以在 Yii 文档中阅读有关标记的内容 here

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

运行 migrate/history 已应用列表迁移:

./yii migrate/history 

复制你想要 return 的迁移名称到以后(假设它是 'm160101_185401_initial_migration')。将它保存在某处,因为您稍后会需要它。

将迁移历史记录标记在您需要运行之前的那个:

./yii migrate/mark m170101_185401_create_news_table

运行 一次迁移:

./yii migrate 1

重置迁移历史记录:

./yii migrate/mark m160101_185401_initial_migration

对于 运行 特定迁移,您可以将迁移标记(跳过)到您想要的 运行 之前。 您可以使用以下命令之一标记迁移:

  1. 使用时间戳指定迁移 yii migrate/mark 150101_185401
  2. 使用strtotime()可以解析的字符串yii migrate/mark "2015-01-01 18:54:01"
  3. 使用全名yii migrate/mark m150101_185401_create_news_table
  4. 使用 UNIX 时间戳yii migrate/mark 1392853618