如何回滚到开始并重新创建/重建新的迁移

时间:2010-02-10 15:57:01

标签: ruby-on-rails migration

所以这是我第一个真正的Ruby on Rails项目。我已经吸取了教训 - 我没有使用迁移进行所有更改,因此事情有点混乱。

重新开始使用新的迁移文件并重建架构等的最佳方法是什么?我的项目太重要了,无法重建整个项目,但距离我到目前为止失去迁移的地方还不够远。我也不介意丢失数据库中的数据。我试图回滚到开头,但有些失败了。

我知道这是一个糟糕的状态,但是吸取了教训。

修改 我刚刚删除了所有迁移文件,并使用db:schema:dump重建了模式文件。 我认为这使我处于一个干净的状态与我现有的数据库,只是失去了迁移。

3 个答案:

答案 0 :(得分:9)

如果您想迁移一些步骤,可以

rake db:rollback STEP=2

该命令将迁移您的数据库2迁移。 如果您需要有关rake命令的更多帮助,请输入jus

rake -T

该命令将列出您在应用程序中的所有任务。

答案 1 :(得分:7)

如果您不担心丢失数据,请执行

rake db:purge

它应该删除你的数据库

答案 2 :(得分:5)

您的schema.rb文件应包含数据库中的实际架构。您可以将其用作创建迁移的起点。您可以使用:force => true参数为每个表创建一个新的迁移,以覆盖旧表。之后您可以删除旧的迁移(您可能还需要从schema_migrations表中删除它们的条目)。

另一个选择是更新旧的迁移以匹配您当前的架构。