2016-05-17 96 views
1

我創建了一個名爲「property」的表,但我沒有遷移它。然後我想刪除表格,所以當我做了rake db:rollback如下。我以前創建的表格,我根本不想刪除,現在恢復。我應該如何恢復我的模型「評論」,而不是刪除最後一個模型「屬性」。Rails:回滾錯誤

一些評論說做「重做」或「運行遷移」,但如果我做了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) ========================== 

回答

0

一旦你完成了rake db:rollback,你已經對數據庫進行了修改。在這種情況下,它會刪除您的comments表,如輸出中所示:drop_table(:comments)。數據已經消失了。我們都曾經在那裏至少一次。

運行rake db:migrate將恢復表結構的comments,但不包含其中的數據。在這種情況下,如果您想要確定新表property未遷移,則可以運行rake db:migrate以運行所有新遷移,然後rake db:rollback一次以回滾遷移property

+0

謝謝你的回答!無論如何要恢復評論表中的數據嗎? – user6211530

+0

不幸的是,沒有一個標準的方法。如果你有你的日誌文件,你可以從那裏重新生成'comments'的內容,但是它需要一些搜索。您需要查找POST到您的'/ comments'路由(或'/ parent/comments',如果它是嵌套的)的日誌條目並查找操作的'params'哈希值。 –

+0

聽起來真的很難..但非常感謝信息〜! – user6211530