我有我的schema.rb文件更新了我在遷移文件中提到的所有更改。但是,當我嘗試安裝我的分區時,出現錯誤消息「您有30個未完成的遷移」。schema.rb更新爲未決遷移
據我所知,如果未運行遷移,schema.rb不會更新。
爲了解決這個問題,我試着做一個rake db:schema:load,然後嘗試播種數據庫。即便如此,我收到了一條錯誤消息:「您有30個未完成的遷移」。
有人可以幫助我嗎?
我有我的schema.rb文件更新了我在遷移文件中提到的所有更改。但是,當我嘗試安裝我的分區時,出現錯誤消息「您有30個未完成的遷移」。schema.rb更新爲未決遷移
據我所知,如果未運行遷移,schema.rb不會更新。
爲了解決這個問題,我試着做一個rake db:schema:load,然後嘗試播種數據庫。即便如此,我收到了一條錯誤消息:「您有30個未完成的遷移」。
有人可以幫助我嗎?
遷移是管理改變您當前架構的方式。
如果您的模式已經符合您的要求,您可以折騰遷移,然後繼續爲您的數據庫播種。當然,rake db:seed
將首先嚐試運行任何遷移,因此首先將它們從文件夾中刪除。
的Rails會創建一個名爲migrations
表和實際記錄已在該數據庫上運行遷移的ID。如果您將應用程序部署到新的數據庫實例,並且已經運行rake db:schema:load
,那麼它的migrations
表將爲空,並且只要有人調用migrate
,就會遇到問題,除非您擺脫不需要的遷移文件需要。
你試過
rake db:migrate
?
是的,我做到了。它給我一個錯誤,說列「xyz」已經存在......這正是30個待定遷移中的第一個所做的。 – 2013-02-20 06:37:11
這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你可以隨時評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/faq#reputation),你將能夠[評論任何帖子](http://stackoverflow.com/privileges/comment)。 – 2013-02-20 06:44:26
@MurthyUpadhyayula你的數據庫有兩件事嗎?我之前也有這個問題,我試圖讓我的遷移不與我的數據庫上的任何東西衝突.. – ksugiarto 2013-02-20 08:49:13
我同意你的方法。我的應用程序處於版本控制之下,如果我刪除了遷移文件,我需要稍後再將它們拉出來。這確實幫助我運行種子腳本沒有任何問題。但後來,我意識到了我的問題的根本原因:我在當前和另一個我克隆的存儲庫中使用了redis gem。在其他幾個配置文件中更改命名空間名稱幫助我完成了整個數據庫設置過程,沒有任何差異。感謝你的回答,至少我得知了一些我不知道的東西。 :) – 2013-02-20 08:58:55