Yii2只运行特定的迁移

问题描述 投票:2回答:4

在Yii2中,当我使用的时候

yii迁移

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

mysql yii yii2 database-migration
4个回答
11
投票

运行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
投票
yii migrate --migrationPath=@app/modules/forum/

0
投票

如果要跳过已在数据库中实施但未运行迁移的某些迁移,则可以在不运行迁移的情况下设置迁移状态。

通过“标记”迁移,您还可以确保它们不再被重新提示并被视为“完成”。

你可以在Yii docs here上阅读有关标记的内容


0
投票

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

  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
© www.soinside.com 2019 - 2024. All rights reserved.