我需要在我的ruby on rails项目上回滚迁移
我意外删除了我的迁移文件,[ID:20180214033313]。
我的迁移状态
我尝试bundle exec rake:db rollback
,但它没有帮助,我也尝试了bundle exec rake db:migrate:down VERSION=20180214033313
,但它给了我下面的错误,
ActiveRecord::UnknownMigrationVersionError:
No migration with version number 20180214033313>
有关如何解决此问题的任何建议?
答案 0 :(得分:0)
如果你正在使用git那么, 您可以使用 git 来恢复该文件, 在git status(或git gui)中,您可以找到已更改文件的列表, 在那里你会看到
已删除:db / seeds.rb
删除文件的类似内容。 只需使用,
git checkout filename
它将恢复文件。
如果你不使用git那么,
使用
rake db:migrate:status
并检查时间戳并创建一个文件,其中包含已删除文件的完全相同的时间戳以及您之前给出的名称。并像以前一样添加相同的代码。并进行迁移。
希望这会有所帮助
答案 1 :(得分:0)
针对您的情况提供更好的解决方案。假设您已根据应用程序初始化了git
,
如果您在当前提交中删除了迁移
执行git stash
,以便终止/删除您所做的更改。现在您可以回滚迁移。
如果您在之前的提交中删除了迁移
您可以使用命令DROP DATABASE databasename
删除数据库,然后进行新的迁移。
答案 2 :(得分:0)
如果您正在使用桌面版的github应用程序,只需右键单击并放弃您所做的更改即可。
在真正的简单回滚之前,我做过同样的事情