Rake db:迁移刚恢复(回滚)所有迁移

时间:2015-03-31 07:46:17

标签: ruby-on-rails rails-migrations

我刚刚合并了一个分支并在暂存时运行rake db:migrate,它还原了我的所有迁移。 (而不是迁移新的)

然后我回到master,重新加载了db并运行了迁移,然后db再次被淘汰了。

有关如何调试的提示吗?

为什么db:migrate甚至会回滚任何迁移?

有关如何使用不同命令的任何提示,这些命令告诉rails只能抓取新的迁移并执行up并且永远不会回滚任何迁移?

1 个答案:

答案 0 :(得分:4)

如果设置了VERSION环境变量,则rails将迁移到该版本而不是最新版本。特别是因为rails调用to_i,如果它包含非整数值,它将迁移到版本0。您可以通过运行env(列出所有环境变量)或(echo $VERSION)来检查这一点

这在很大程度上是rake不支持在命令行上将参数传递给任务的遗留物,因此人们会使用环境变量来模拟它们以便你可以这样做

rake db:migrate VERSION=xyz