Rails:回滚错误

时间:2016-05-17 22:46:28

标签: ruby-on-rails ruby rollback dbmigrate

我创建了一个名为" property"我还没有迁移它。然后我想删除该表,所以当我执行rake db:rollback时,如下所示。我之前创建的表格,我根本不想删除,现在已恢复。我应该如何重振我的模型"评论"而是删除最后一个模型"属性"只要。

有些评论说做"重做"或者"运行迁移"但如果我做rake db:migrate,我觉得它会永久删除评论模型。我错了吗?什么是正确的解决方案来恢复我的评论模型?

:~/workspace (revoke) $ rails g model property title address note price$ priceW 
Running via Spring preloader in process 3066
      invoke  active_record
      create    db/migrate/20160517222114_create_properties.rb
      create    app/models/property.rb
      invoke    test_unit
      create      test/models/property_test.rb
      create      test/fixtures/properties.yml
:~/workspace (revoke) $ bundle exec rake db:rollback
== 20160506122941 CreateComments: reverting ===================================
-- drop_table(:comments)
   -> 0.0011s
== 20160506122941 CreateComments: reverted (0.0096s) ==========================

1 个答案:

答案 0 :(得分:0)

完成rake db:rollback后,您已对数据库进行了更改。在这种情况下,它会删除您的comments表,如输出中所示:drop_table(:comments)。数据已经消失了。我们都至少去过那里一次。

运行rake db:migrate将恢复comments表结构,但不恢复其中的数据。在这种情况下,如果您想要迁移新表property,则可以运行rake db:migrate来运行所有新迁移,然后rake db:rollback运行一次回滚property的迁移。