2011-09-06 6 views
10
rake db:create:all rake db:create:allを実行すると、次のメッセージが表示されます。

"スタックレベルが深すぎる" 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を使用すると、そこでトリックが行われました。レーキの呼び出しが、ファイルがまだロードされていないことに気づかずに、再帰的に呼び出すように見えます。

だから、それがあなたのために働いたかどうか試してみてください。

+1

はい、通常のレーキ問題の原因は、 'bundle exec'で呼び出すことを忘れることです。通常は物事を忘れる人にとっては、 'bundle exec bash 'を呼び出すことが役に立ちます。 – Arsen7

+1

残念なことに動作しません – user930538

+0

これは助けました。 10.4.2からアップグレードした後、レーキ12.3.0でしか得られませんが、バンドルexec rakeの前には、レーキに比べて警告をスローしません。 octoquad

19

の場合は、私のように、あなたはbundleを毎回使用するのが面倒です:

は手品を見たいですか? gem uninstall rakeを実行してみてください。依存関係が壊れているかどうかを確認するカウンター直感的、私は知っている。

rakeコマンドをbundle execなしで実行してください。マジック!

私はそれが本当にどのように機能するのか分かりませんが、あなたのローカル/グローバルな宝石セットと関係があると思います。あなたのrvmグローバルレーキは今使用されているはずです。

いいえ、これは良い方法ではないかもしれませんが、私が言ったように、それは怠け者のためです。

+1

これは私のために働いていました。 Railsがインストールされています。 – DennyFerra

+0

...ちょうどレールの古いバージョンがあったラップトップでRails 3.1.1を使って同じ問題を抱えていると付け加えてください。 @ジョナラッドの先端は問題を解決しました。 – microspino

+0

も私のために働いた。おかげで@jonallard – jn29098

2

毎回bundle execを実行する必要がない別の方法が見つかりました。 私自身、Sinatra(Railsではなく)を使って作業し、gem 'rake'を私のGemfileに追加するのは魅力的でした。 :)

0

コマンドコマンドgem uninstall rakeは、私が複数のレーキの宝石がインストールされていることを示しています.3のうち2つを取り除いた後、私はbundle execを使用する必要はありません!

関連する問題