首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不删除所有较新的迁移的情况下再次运行迁移?

如何在不删除所有较新的迁移的情况下再次运行迁移?
EN

Stack Overflow用户
提问于 2013-06-07 17:47:46
回答 5查看 41.3K关注 0票数 27

我刚刚安装了devise,所以表中除了一个用户(我)之外没有任何数据。

我重新做了一遍数据库,所以我把它都扔掉了。我做了rails g scaffold来生成6个新的模型和控制器,还做了rake db:migrate

在我的/db/migrate目录中有一个文件名为20130603211907_devise_create_users.rb的devise文件

问题是:如果我使用rake db:migrate:down VERSION=20130603211907,它将删除所有新的迁移。

如何在不删除所有较新的迁移的情况下再次运行迁移?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-06-07 17:52:41

如果你是在本地开发,并且从你的模型中删除所有数据不会有什么坏处,你可以简单地drop你的数据库,然后从头开始create & migrate

Purge or recreate a Ruby on Rails database

票数 9
EN

Stack Overflow用户

发布于 2013-06-07 17:52:41

它将依次运行down和up步骤(此命令可以删除您的表!):

rake db:migrate:redo VERSION=xxxxxxx

为了防止您的表被删除,您可以结合临时注释掉 down step来执行此操作。

票数 86
EN

Stack Overflow用户

发布于 2013-06-07 18:04:14

感谢大家的帮助。这是对我有效的方法:

警告:这些命令将删除数据库中的所有数据!

代码语言:javascript
复制
rake db:drop
rake db:create
rake db:migrate
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16981071

复制
相关文章

相似问题

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