在我的情况下,如何在轨道上回滚ruby

时间:2018-02-14 04:49:29

标签: ruby-on-rails

我需要在我的ruby on rails项目上回滚迁移

我意外删除了我的迁移文件,[ID:20180214033313]。

我的迁移状态

migration output

我尝试bundle exec rake:db rollback,但它没有帮助,我也尝试了bundle exec rake db:migrate:down VERSION=20180214033313,但它给了我下面的错误,

ActiveRecord::UnknownMigrationVersionError: 
No migration with version number 20180214033313> 

有关如何解决此问题的任何建议?

3 个答案:

答案 0 :(得分:0)

  1. 如果你正在使用git那么, 您可以使用 git 来恢复该文件, 在git status(或git gui)中,您可以找到已更改文件的列表, 在那里你会看到

    已删除:db / seeds.rb

    删除文件的类似内容。 只需使用,

    git checkout filename

    它将恢复文件。

  2. 如果你不使用git那么, 使用 rake db:migrate:status 并检查时间戳并创建一个文件,其中包含已删除文件的完全相同的时间戳以及您之前给出的名称。并像以前一样添加相同的代码。并进行迁移。

  3. 希望这会有所帮助

答案 1 :(得分:0)

针对您的情况提供更好的解决方案。假设您已根据应用程序初始化了git

如果您在当前提交中删除了迁移

执行git stash,以便终止/删除您所做的更改。现在您可以回滚迁移。

如果您在之前的提交中删除了迁移

您可以使用命令DROP DATABASE databasename删除数据库,然后进行新的迁移。

答案 2 :(得分:0)

如果您正在使用桌面版的github应用程序,只需右键单击并放弃您所做的更改即可。

在真正的简单回滚之前,我做过同样的事情