我运行了'scaffold‘和'migrate’
然后我后悔了,先运行rails d scaffold xxx,然后运行db:rollback
发现scheme.rb没有改变。
我想是因为migrate file不见了。如何恢复?
% rake db:migrate:status
up 20140916064606 Create tool mvaas securities
up 20140918034311 ********** NO FILE **********
down 20140918035954 Create tool cvt remote focus发布于 2014-09-18 12:50:24
脑海中浮现两个选项:
1.使用Git
如果您的工作处于版本控制之下,并且您之前已经提交了丢失的迁移,请在删除迁移之前将迁移内容复制到,再次git checkout回到现在,将复制的迁移内容粘贴到与旧迁移相同的时间戳的新迁移中。现在db:rollback应该可以工作了。
2.再次搭建脚手架
如果您丢失的迁移从未进入版本控制,但您记得脚手架中定义的字段(看看schema.rb,如果回滚失败,所有字段应该仍然存在),那么您可以重新脚手架,修改新创建的迁移文件名,使其与旧迁移文件名具有相同的时间戳,然后使用db:rollback。然后使用'rails d scaffold‘来进行清理。
未来代码
我想你已经学得很辛苦了,但在将来,它会让你首先使用db:rollback,然后使用rails d scaffold。
希望这能有所帮助!
https://stackoverflow.com/questions/25904003
复制相似问题