回滚特定迁移而不回滚其他迁移

Posted

技术标签:

【中文标题】回滚特定迁移而不回滚其他迁移【英文标题】:Roll back a specific migration without rolling back other migrations 【发布时间】:2014-06-21 11:45:52 【问题描述】:

我错误地将倒数第二个数据库迁移错误地运行,但最后一次迁移很好。现在我想回滚倒数第二次迁移,而不恢复上次迁移。请与我和其他人分享您的知识。

【问题讨论】:

***.com/questions/3647685/… 【参考方案1】:

您可以使用rake db:migrate:down VERSION=xxxxx,其中xxx 是您的迁移版本号以获取更多see this

【讨论】:

【参考方案2】:
rake db:migrate:down VERSION=20140804301246

【讨论】:

我想回滚命令直到该迁移,并删除该迁移,然后再次仔细完成所有工作,我知道它的坏方法,但它会工作吗? 这也是一种做法:)。但如果代码与其他开发人员共享,则必须小心。【参考方案3】:

您可以将您的迁移文件 version number 指定为 rollback 该迁移。

你可以通过其中任何一个来实现它

rake db:migrate:down VERSION=your_file_version

rake db:rollback:up VERSION=your_file_version

【讨论】:

我想回滚命令直到该迁移,并删除该迁移,然后再次仔细完成所有工作,我知道它的坏方法,但它会工作吗?并感谢@pavan @m_Awais 如果您仅错误地执行了该迁移,那么您可以简单地回滚它并正确地进行必要的更改,然后再次迁移它。 @Awais.pk 如果您觉得有帮助,请接受答案:)【参考方案4】:

我找到的简单答案是

rake db:rollback STEP=X 

其中 X 是您想要玩的迁移次数(回滚)。 喜欢

rake db:rollback STEP=3

【讨论】:

以上是关于回滚特定迁移而不回滚其他迁移的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 删除表,迁移不回滚

迁移回滚期间无法从其他应用导入 Django 模型

代码优先迁移 - 如何回滚第一次迁移

回滚 laravel5 中的特定迁移

如何迁移:在 laravel 5 中回滚特定表

Rails - 如何回滚之前的第 4 次和第 5 次迁移