這是設置。擁有一個Ruby off Rails API應用程序設置。如何獲得只有1個遷移文件的「ActiveRecord :: DuplicateMigrationNameError」?
它通過git子模塊獨立地引入「數據庫創建應用程序」。有一個「db/migrate」文件夾包含一個遷移文件和一個「db/structure.sql」文件。數據庫創建項目本質上是一個精簡的Rails項目 - 我們使用Rails,因爲我們需要rake任務來讓我們輕鬆遷移。
structure.sql文件基本上重新創建了我們的舊數據庫模式(由於有多個需要訪問數據庫的應用程序,並希望儘可能保持數據庫的一致性,我們決定將數據庫代碼保存在單獨的repo中)。
如果我做rake db:create
我被告知存在app_development
和app_test
。我已經手動刪除了兩者的schema_migrations和schema_info表。事實上,app_test是空的,並且不包含表格。
如果我運行耙分貝:遷移,我得到告訴:
ActiveRecord::DuplicateMigrationNameError:
Multiple migrations have the name YourMigrationToTableBlahBlah
這怎麼可能?我如何解決這個錯誤,所以我可以遷移?
有一次我做了一個git commit,重命名db/migration中1遷移文件中的列,但我刪除了app_development和app_test以及schema_migrations表中的表,所以Rails rake任務不應該是抱怨這件事。
編輯:
有一件事我注意到的是的bundle exec rake db:migrate
運行過程中是相同的遷移文件夾路徑(例如,「DB /遷移」)被添加到ActiveRecord::Tasks::DatabaseTasks.migrations_paths
,但我不知道爲什麼
我丟棄了數據庫並使用postgres語句重新創建它,它仍然給出了相同的錯誤... – Nona
「YourMigrationToTableBlahBlah」中有錯誤,也許你在「YourMigrationToTableBlahBlah」中再次創建列或表格 – Cary