2017-07-06 46 views
2

從Rails 3升級到Rails 4後,db:schema:load任務失敗。我做了一些挖掘,發現升級後當我運行bundle exec rake db:schema:loaddb/schema.rb文件正在加載兩次。第一次運行良好;那麼通過它的第二次失敗是由於create_table force: true由於在表上存在依賴性約束而失敗。rake db:schema:多次加載load schema.rb?

我已經剝離了每一個額外的rake任務,並嘗試排除我的任何代碼,但仍然這兩次加載schema.rb。它總是正好兩次,因爲我能夠在SQLite上成功運行它,並在那裏看到相同的行爲,但由於SQLite沒有強制實施表約束,因此它會運行到完成狀態。

+0

我在Rails 5中看到了這一點,但僅在開發環境中。 RAILS_ENV =測試正常。 –

回答

0

您可能會檢查以確保您的Rakefile不是兩次加載任務。當Rake註冊一個與現有任務同名的任務時,它將按順序運行,而不是用新的定義替換舊的定義。