2011-04-20 37 views

回答

2

你刪除DB \ schema.rb或DB \遷移文件呢?

在第一種情況下,你可以嘗試移動數據庫文件到其他位置,並執行:

rake db:migrate 

如果卸下schema.rb和遷移文件,您可以執行

rails generate migration 

和手動重新遷移。

+0

對不起,讓我澄清一下,我使用的SQLite數據庫瀏覽器編輯我development.sqlite3文件,並刪除了架構遷移表的一切。 – Justin 2011-04-20 13:09:51

+0

只需刪除sqlite數據庫文件並啓動'rake db:migrate'。它重新創建數據庫。 – demas 2011-04-20 13:14:33

+0

太棒了,謝謝! – Justin 2011-04-20 13:22:06

0

或者你可以殺死DB並重新啓動

rake db:drop; rake db:migrate; rake db:test:prepare 
+1

多重任務可以被傳遞到耙:'耙分貝:滴分貝:遷移分貝:測試:prepare' – 2012-05-07 19:37:39

1

只要你不需要再次運行rake db:migrate你會沒事的。否則,你會遇到問題。

我也許應該這樣做是紅寶石,但我更熟悉Perl - 所以這裏有一個快速的腳本來幫你resurect的schema_migrations表

!#/usr/bin/perl 

opendir(DH, 'path/to/rails/app/db/migrate'); 

while($filename = readdir(DH)) 
{ 
    next unless $filename =~ /\.rb$/; 
    @parts = split("_", $filename); 
    print "INSERT INTO schema_migration VALUES (" . $parts[0] . ");\n"; 
} 

運行腳本會給你一系列的INSERT語句那麼就可以複製並粘貼到sqllite命令行工具