Ruby on rails 在RubyonRails应用程序中运行RakeDB:migrate时出现问题

Ruby on rails 在RubyonRails应用程序中运行RakeDB:migrate时出现问题,ruby-on-rails,rake,dbmigrate,Ruby On Rails,Rake,Dbmigrate,我正在尝试在我的RubyonRails应用程序中运行rakedb:migrate 然而,它给了我一个“未初始化常量”异常。通过谷歌搜索,看起来解决方案是更新rake版本。所以我更改了我的文件并运行了包更新 然而,例外情况仍在发生。。。我想是因为我没有更新正确的rake库 我该如何解决这个问题?我怎样才能为其他路径更新rake,或者通过bundle专门运行rake呢 My-Comp:my_project username$ bundle show rake /Library/Ruby/Gems/1

我正在尝试在我的RubyonRails应用程序中运行rakedb:migrate

然而,它给了我一个“未初始化常量”异常。通过谷歌搜索,看起来解决方案是更新rake版本。所以我更改了我的文件并运行了包更新

然而,例外情况仍在发生。。。我想是因为我没有更新正确的rake库

我该如何解决这个问题?我怎样才能为其他路径更新rake,或者通过bundle专门运行rake呢

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
请尝试以下命令:

bundle exec rake db:migrate

bundle exec
在您的gemfile上下文中执行命令。

您的gemfile中有什么?您应该指定所需的rake版本并运行bundle install。还有,你运行的是哪个版本的Ruby?好的,我认为这很有效。我怎样才能更新另一个rake呢?我试过gem更新rake,但它没有说什么要更新的。(我更喜欢有一个工作的rake,而不是一直运行exec!)“还有其他rake”——你是说在其他项目中?您应该在这些项目的GEM文件中分配rake版本。不,我不是指其他项目。我的意思是,我不太了解版本管理,所以我想我有两个版本的rake。一个是/Library/Ruby/Gems/1.8/Gems/rake-0.9.2.2,另一个是/usr/bin/rake/usr/bin/rake是0.8.7,我也需要升级,但不知道如何升级。或者我需要它,以便“rake”执行gem rake而不是另一个。(看我在答案中粘贴的输出)您应该安装rubygems,让这个ruby的打包系统来解决此类问题。bundler将在项目上下文中解决依赖关系。我将这两行添加到我的Rakefile中,现在它似乎可以工作了(有一个关于几个已经初始化的常量的警告:require'rake/dsl_definition'require'rake'