2012-09-13 56 views
0

我在本地對應用程序進行了一些測試,並遇到數據庫死鎖情況。在蒐集了一些關於它的信息之後,我決定,因爲它只是開發我會吹走數據庫並重新創建它。Rails 3無法重新創建數據庫 - db:migrate掛起

只有這樣才行。我重新創建了數據庫幾次,我從來沒有遇到任何問題。

我可以運行db:drop ok和db:create works,但是當我運行db時:遷移它只是掛起。

我已經重新啓動一個進程在數據庫上有某種鎖定但沒有變化。

沒有錯誤,當我做 - 跟蹤我沒有更聰明。

任何幫助,將不勝感激,甚至從哪裏開始調試問題

這是我對數據庫的配置......

發展: 適配器:sqlite3的 數據庫:數據庫的/ dev .sqlite3 池:5 超時:5000

測試: 適配器:sqlite3的 數據庫:DB/test.sqlite3 池:5 恬EOUT:5000

感謝

+0

您是否嘗試過只用在第一遷移'puts',看看它甚至會在那裏? – weexpectedTHIS

+0

我剛剛在第一次遷移時將def「self.up」放在「first migration」之後,當我運行db:migrate時,它不會出現。另外,當我運行rails時,webrick服務器也掛起,它顯示前幾行,但從未到達告訴你pid和端口的行。我使用相同的gemset創建了一個新的rails應用程序,我可以進行遷移並啓動webrick服務器。 – dano

+0

聽起來好像它可能與您在'environment.rb'文件,'application.rb'文件或初始化程序中放入的一些自定義內容有關。 – weexpectedTHIS

回答

0

我不是我是否應該說這是回答,但它是固定的100%。感謝您的幫助weexpectedTHIS,我開始尋找environment.rb,application.rb和boot.rb.我不會在那裏投入太多。我在Environment.rb中看到了my_app :: Application.initialize!這一行。

我假設這是凍結的地方。我評論了這一點,並確信webrick會加載,我至少可以運行rake db:即使它失敗了也可以遷移,我也可以進入rails控制檯。顯然,如果沒有這一行,我注意到該應用程序根本無法工作。所以我用不同的東西註釋掉了控制檯,最終所有被註釋掉的都是my_app :: Application.initialize!線。

我在軌道控制檯中輸入了該行,並且它掛起,我取消了,並嘗試了幾次,並且在幾次行程結束後它才運行正常。不知道爲什麼。我遇到了其他有類似問題的人,但他奇蹟般地開始工作沒有明顯的原因。不幸的是,我身處同一條船,對於任何未來經歷過此事的人都沒有多大幫助。

初始化應用程序肯定有問題,但我不知道究竟是什麼。

該鏈接詳細介紹了rails中的初始化過程,因此如果有人遇到類似的問題,可能需要閱讀才能獲得創意。

http://guides.rubyonrails.org/initialization.html