0
2個月前,我的一個遷移文件已被刪除。事情是當我rake數據庫:遷移我的數據庫在本地主機缺少遷移。我無法創建新的遷移,因爲生產數據庫是使用缺少的文件遷移的。所以每次我導入本地生產數據庫和我跑遷移它說:Rails丟失遷移文件問題
領域已經存在....
我看到一些評論它說我應該修改schema_migrations表與相應版本的遷移文件。
您對這個問題有任何更深入的解釋。
感謝
2個月前,我的一個遷移文件已被刪除。事情是當我rake數據庫:遷移我的數據庫在本地主機缺少遷移。我無法創建新的遷移,因爲生產數據庫是使用缺少的文件遷移的。所以每次我導入本地生產數據庫和我跑遷移它說:Rails丟失遷移文件問題
領域已經存在....
我看到一些評論它說我應該修改schema_migrations表與相應版本的遷移文件。
您對這個問題有任何更深入的解釋。
感謝
的schema_migrations表保存已運行的所有遷移的所有版本號,或者系統認爲已經至少運行。當您執行rake db:migrate
時,rails將查看db/migrate中的所有文件,並忽略數字前綴爲schema_migrations
的文件。因此,如果您有一個實際已經運行的遷移,但系統認爲它沒有運行,那麼您只需將其版本號添加到schema_migrations中即可。
打開相關數據庫控制檯,然後輸入
insert into schema_migrations (version) values("<the number from the start of the migration file>");
顯然,在<更換部件>用適當的數量。
然後,db:migrate將不再嘗試運行該遷移。
很好,它的工作原理。感謝您的信息。 – maxencenoel