2011-09-06 28 views
10

當我運行rake db:create:all,我得到了以下信息:「堆棧級別太深」運行耙分貝:創建:所有

/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/version.rb:4: warning: already initialized constant MAJOR 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/version.rb:5: warning: already initialized constant MINOR 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/version.rb:6: warning: already initialized constant BUILD 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/version.rb:3: warning: already initialized constant NUMBERS 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/version.rb:9: warning: already initialized constant VERSION 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake.rb:26: warning: already initialized constant RAKEVERSION 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/early_time.rb:17: warning: already initialized constant EARLY 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/alt_system.rb:32: warning: already initialized constant WINDOWS 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:28: warning: already initialized constant DEFAULT_RAKEFILES 
WARNING: Possible conflict with Rake extension: String#ext already exists 
WARNING: Possible conflict with Rake extension: String#pathmap already exists 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task_arguments.rb:73: warning: already initialized constant EMPTY_TASK_ARGS 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/invocation_chain.rb:49: warning: already initialized constant EMPTY 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_utils.rb:10: warning: already initialized constant RUBY 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_utils.rb:84: warning: already initialized constant LN_SUPPORTED 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/dsl_definition.rb:143: warning: already initialized constant Commands 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:44: warning: already initialized constant ARRAY_METHODS 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:47: warning: already initialized constant MUST_DEFINE 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:51: warning: already initialized constant MUST_NOT_DEFINE 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:55: warning: already initialized constant SPECIAL_RETURN 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:61: warning: already initialized constant DELEGATING_METHODS 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:364: warning: already initialized constant DEFAULT_IGNORE_PATTERNS 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:370: warning: already initialized constant DEFAULT_IGNORE_PROCS 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake.rb:64: warning: already initialized constant FileList 
/Users/junior/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake.rb:65: warning: already initialized constant RakeFileUtils 
rake aborted! 
stack level too deep 

和數據庫未創建。有人能幫我嗎?

回答

24

我在互聯網上發現了一條提示,如何避免錯誤。請參閱"Rail 3.1 and Rake aborted"的鏈接。沒有給出任何理由,但使用bundle exec rake而不是純粹的rake調用已經在那裏做了詭計。看起來像耙子的調用遞歸調用自己,沒有注意到文件尚未加載。

所以試試看,告訴我們是否適合你。

+1

是的,耙子問題的常見來源是忘記用'bundle exec'調用它。對於那些經常忘記事情的人來說,調用「bundle exec bash」會有所幫助。 – Arsen7

+1

不幸的是沒有工作 – user930538

+0

這有幫助。只有在從10.4.2升級之後在rake 12.3.0中得到了這個,但是預先捆綁了exec rake 與rake相比不再拋出警告 octoquad

19

如果像我一樣,你是懶得用bundle每次:

想看魔術?嘗試運行gem uninstall rake。當被問及關於中斷依賴關係時,請確認反知覺,我知道。

現在運行您的rake命令,而不使用bundle exec。魔法!

我不知道它是如何工作的,但我認爲它與您的本地/全球gemsets有關;你的rvm全局耙子應該是現在正在使用的耙子。不,這可能不是很好的做法,但就像我說的,這是爲了懶惰。

+1

這對我有用,我不知道它是否與舊版本安裝Rails。 – DennyFerra

+0

...只是爲了補充一點,我通過在筆記本電腦上使用Rails 3.1.1也得到了同樣的問題,我也有一個老版本的Rails。 @jonallard提示解決了這個問題。 – microspino

+0

也適用於我。謝謝@jonallard – jn29098

2

我發現了另一種方法,不必每次都運行bundle exec。 對於我自己來說,工作瓦特/ Sinatra(不是Rails),加入gem 'rake'我的Gemfile就像一個魅力。 :)

0

命令gem uninstall rake告訴我,我已經安裝了多個耙寶石,在刪除2個3之後我不需要再使用bundle exec