2013-11-28 63 views
0

2個月前,我的一個遷移文件已被刪除。事情是當我rake數據庫:遷移我的數據庫在本地主機缺少遷移。我無法創建新的遷移,因爲生產數據庫是使用缺少的文件遷移的。所以每次我導入本地生產數據庫和我跑遷移它說:Rails丟失遷移文件問題

領域已經存在....

我看到一些評論它說我應該修改schema_migrations表與相應版本的遷移文件。

您對這個問題有任何更深入的解釋。

感謝

回答

1

的schema_migrations表保存已運行的所有遷移的所有版本號,或者系統認爲已經至少運行。當您執行rake db:migrate時,ra​​ils將查看db/migrate中的所有文件,並忽略數字前綴爲schema_migrations的文件。因此,如果您有一個實際已經運行的遷移,但系統認爲它沒有運行,那麼您只需將其版本號添加到schema_migrations中即可。

打開相關數據庫控制檯,然後輸入

insert into schema_migrations (version) values("<the number from the start of the migration file>"); 

顯然,在<更換部件>用適當的數量。

然後,db:migrate將不再嘗試運行該遷移。

+0

很好,它的工作原理。感謝您的信息。 – maxencenoel