2012-04-22 5 views
0

Ruby on Railsアプリケーションでrake db:migrateを実行しようとしています。rake db:Ruby on Railsアプリケーションでの移行の問題

しかし、それは私に「初期化されていない定数」例外を与えています。これをグーグルで見ると、レーキバージョンを更新するのが解決策であるように見えます。そこでgemfileを変更してバンドルのアップデートを実行しました。

しかし、例外はまだ起こっています...私は正しいレーキライブラリを更新していないためだと思います。

これを修正するにはどうすればよいですか?他のパスのレーキを更新するにはどうしたらいいですか?

My-Comp:my_project username$ bundle show rake 
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2 
My-Comp:my_project username$ which rake 
/usr/bin/rake 
My-Comp:my_project username$ rake -V 
rake, version 0.8.7 

(See - they are not the same!) 

My-Comp:my_project username$ rake db:migrate --trace 
(in /Users/username/projects/my_project) 
rake aborted! 
uninitialized constant Rake::DSL 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rake.rb:2503:in `const_missing' 
/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2/lib/rake/tasklib.rb:8 
/Library/Ruby/Gems/1.8/gems/rdoc-3.12/lib/rdoc/task.rb:37:in `require' 
/Library/Ruby/Gems/1.8/gems/rdoc-3.12/lib/rdoc/task.rb:37 
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/tasks/documentation.rake:2:in `require' 
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/tasks/documentation.rake:2 
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/tasks.rb:15:in `load' 
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/tasks.rb:15 
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/tasks.rb:6:in `each' 
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/tasks.rb:6 
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/application.rb:289:in `require' 
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/application.rb:289:in `initialize_tasks' 
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/railtie.rb:184:in `instance_exec' 
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/railtie.rb:184:in `load_tasks' 
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/railtie.rb:184:in `each' 
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/railtie.rb:184:in `load_tasks' 
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/engine.rb:424:in `load_tasks' 
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/application.rb:145:in `load_tasks' 
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/railtie/configurable.rb:30:in `send' 
/Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/railtie/configurable.rb:30:in `method_missing' 
/Users/username/projects/my_project/Rakefile:7 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rake.rb:2383:in `load' 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rake.rb:2383:in `raw_load_rakefile' 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rake.rb:2017:in `load_rakefile' 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rake.rb:2068:in `standard_exception_handling' 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rake.rb:2016:in `load_rakefile' 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rake.rb:2000:in `run' 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rake.rb:2068:in `standard_exception_handling' 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rake.rb:1998:in `run' 
/usr/bin/rake:31 
+0

あなたのGemfileには何がありますか?必要なレーキのバージョンを指定し、バンドルインストールを実行する必要があります。また、どのバージョンのRubyを実行していますか? – brad

答えて

1

次のコマンドを試してみてください。

bundle exec rake db:migrate 

bundle execはあなたのgemfileのコンテキストでコマンドを実行します。

+0

OK、それはうまくいったと思います。他のレーキもどうすれば更新できますか?私はgem update rakeを試してみました。更新するだけのことは何も言いません。 (私はいつもexecを実行するのではなく、作業中のレーキを持っているのが好きです!) –

+0

「他のレーキも」 - あなたは他のプロジェクトを意味していますか?これらのプロジェクトのgemfileにレーキバージョンを割り当てる必要があります。 – megas

+0

いいえ、私は他のプロジェクトを意味するものではありません。私はバージョン管理を本当に理解していないので、私は自分自身に2つのバージョンのレーキを持っていると思う。 1つは/Library/Ruby/Gems/1.8/gems/rake-0.9.2.2で、もう1つは/ usr/bin/rakeです。/usr/bin/rakeは0.8.7であり、私もそれをアップグレードする必要がありますが、方法を理解することはできません。それとも、 "rake"がもう片方の代わりにgem rakeを実行するようにする必要があります。 (答えに貼り付けた出力を見てください) –

関連する問題