Rails:回滚错误

Rails: Rollback Mistake

我创建了一个名为 "property" 的 table,但我还没有迁移它。然后我想删除 table,所以当我按如下方式执行 rake db:rollback 时。我之前根本不想删除的 table 现在已恢复。我应该如何恢复我的模型 "comment" 而不是只删除最后一个模型 "property"。

一些评论说做 "redo" 或 "run migrate" 但如果我做 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) ==========================

完成 rake db:rollback 后,您就对数据库进行了更改。在本例中,它删除了您的 comments table,如您在输出中所见:drop_table(:comments)。数据已经消失了。我们都至少去过那里一次。

运行 rake db:migrate 将恢复 comments table 结构,但不会恢复其中的数据。在这种情况下,如果您想达到不迁移新 table property 的地步,您可以 运行 rake db:migrate 到 运行 all new迁移,然后 rake db:rollback 回滚 property.

的迁移