2014-01-23 20 views
17

我克隆了我的項目。捆綁「捆綁安裝」,然後運行「rake db:migrate」。我得到這個錯誤:(當我運行rails服務器並打開我的瀏覽器到localhost:3000)「遷移未決;運行'bin/rake db:migrate RAILS_ENV = development'來解決此問題。」正在獲取:「遷移正在等待;運行'bin/rake db:migrate RAILS_ENV = development'來解決此問題。」在克隆和遷移項目之後

我檢查了所有的遷移一個接一個,所有的執行沒有錯誤。執行「rake db:migrate」後也沒有顯示錯誤。

這是我所看到的,當我執行「rake db:migrate:status

我在開發環境。如果您需要其他信息,請告訴我。

我也嘗試了「bundle exec rake db:migrate」和「bundle exec rake db:migrate:reset」作爲「burninggramma」的建議。

任何線索是什麼導致錯誤?

+1

請向我們展示'''rake db:migrate:status'''的輸出。所有遷移腳本是否都遷移了? – Eich

+0

你在第一部分寫道:',然後運行「rake db:migrate」。我得到這個錯誤:'。但是你也寫道:'在執行「rake db:migrate」之後也沒有顯示錯誤。「那麼這些錯誤何時出現? – p1100i

+0

@burninggramma哦對不起。當我運行服務器並在瀏覽器上打開localhost:3000時 –

回答

22

有趣。你運行rake db:創建?假設你正在使用sqlite3的,這樣做:

 rm -f db/*.sqlite3 
     rake db:create 
     RAILS_ENV=development rake db:migrate 
     rails s -e development 

此外,您還可以列出你配置的內容/ database.yml的文件?

編輯:警告!很明顯,你會失去你現有的數據。

+0

好吧,它的奇怪。現在它工作正常。我認爲db:create是關鍵,但不知道爲什麼會發生這種情況...... –

+1

@ stefanos-ioannou rake db:create創建數據庫,如果它不存在。運行遷移而不創建數據庫應該會引發錯誤。不知道這裏發生了什麼。回想起來,我可能會嘗試rake db:migrate VERSION = 0;耙db:遷移,看看是否有任何錯誤。 – lewstherin

2

1.也許它在ruby2/rails4中的默認值,但你嘗試過:bundle exec rake db:migrate

2.另一個選項是重置整個數據庫 - 使用注意!重置所有數據以及 - bundle exec rake db:migrate:reset

+)我只想確保你在同一發展ENV執行的一切:

RAILS_ENV=development bundle exec rake db:migrate:reset 
RAILS_ENV=development bundle exec rails s 
+0

仍然是同樣的錯誤: –

+0

你有沒有試過選項2? – p1100i

+0

是的,我做到了。仍然是同樣的錯誤。 –

6

列表您執行遷移與rake db:migrate:status,如果被執行每一個遷移的期待。您可以嘗試使用rake db:abort_if_pending_migrations取消遷移並嘗試再次遷移。

+0

查看這裏的狀態:https://www.evernote.com/shard/s238/sh/c6b9371c-2fd0-41b8-9d3d-038c2676bb31/a98ae6e0fd5ca6a769eefe2a270f348d –

+0

我也用過abort_if_pending並再次傾斜(在放棄之後)。依然沒有。沒有錯誤顯示 –

12

運行migrate命令後,我仍然有相同的錯誤。

對我而言,只是停止rails服務器並重新啓動它。

+0

工作對我也 –

1

我在瀏覽器中遇到了同樣的錯誤,但仔細查看錯誤消息後,我注意到了一些如何在遷移評論和發佈文件中有額外的空白空間。一旦我刪除它,它完美運作。

3

運行rake db:migrate RAILS_ENV=test爲我做

0

下面是我工作: -gem安裝導軌-v 4.1.0 內的Gemfile: -gem '軌道',「4.1。0' (更換新/舊的這個) 不要捆綁安裝和更新 -bundle安裝 -bundle更新 在你application.rb中: 刪除/評論 - config.active_record.raise_in_transactional_callbacks =真

運行捆綁耙子: -bundle exec rake db:migrate 刷新頁面,錯誤應該消失。

0

兩個原因「分貝:遷移:重置」爲沒有工作我

1) loosing data 
2) we moved from php to rails, so we had an existing DB and the migrations were written on top of it not from the scratch 

所以我嘗試是更新「scheema_migrations」與遷移的列表(MySQL的)表(只是版本值)我真的很確定已經運行在我的db(開發)上,這可能是耗時的過程,但它可以工作。儘管如此,我不會嘗試這種做法。

-2

你總是可以運行耙分貝:重置

+0

這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 - [來自評論](/ review/low-quality-posts/11199924) –

+0

@RyanGates這不是如何提供答案?它可能是完全錯誤的,[但這並不意味着我們應該刪除它。](http://meta.stackoverflow.com/q/287563/1849664)請在審閱時注意。 – Undo

+0

@Undo這個答案讓我覺得更像是一個評論,因爲它聽起來像是一個「嘗試這種」評論。我明白你的意思是這是一個真正的答案,並且感謝你將我與這篇文章聯繫起來。 –

0

猜測的錯誤是,你正在創建一個已經存在,我以前有這個問題的表。 步驟1 外觀到錯誤,當你耙DV:遷移

步驟2 轉至該表創建

步驟3 添加drop_table模型:你的表]就在create_table之前:[你的桌子]

第2步 運行rake db:migrate

步驟3 刪除drop_table一次當我執行rake test,並會見了錯誤的遷移完成

-1

"rake aborted! ActiveRecord::PendingMigrationError: Migrations are pending. To resolve this issue, run: bin/rake db:migrate RAILS_ENV=test"

我試圖與成功:

rm -f db/*.sqlite3 

rake db:create 

RAILS_ENV=development rake db:migrate 

rails s -e development