首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rake db:回滚不起作用?缺少dbmigrate之后

rake db:回滚不起作用?缺少dbmigrate之后
EN

Stack Overflow用户
提问于 2014-09-18 12:05:08
回答 1查看 657关注 0票数 0

我运行了'scaffold‘和'migrate’

然后我后悔了,先运行rails d scaffold xxx,然后运行db:rollback

发现scheme.rb没有改变。

我想是因为migrate file不见了。如何恢复?

% rake db:migrate:status

代码语言:javascript
复制
   up     20140916064606  Create tool mvaas securities
   up     20140918034311  ********** NO FILE **********
  down    20140918035954  Create tool cvt remote focus
EN

回答 1

Stack Overflow用户

发布于 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

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25904003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档