当试图在
Heroku上rake db:migrate时.我收到以下错误.
rake aborted! uninitialized constant Rake::DSL
从我收集的内容来看,这似乎是Rake 0.9.2的错误.如果我在本地做“宝石列表”,则只安装Rake(0.8.7).
我尝试将“gem’rake’,’0.8.7’”添加到我的gem文件并运行bundle install但是后来我收到以下错误.
You have requested: rake = 0.8.7 The bundle currently has rake locked at 0.9.2. Try running `bundle update rake`
如果我运行bundle update rake,它会恢复到0.9.2,我回到了我开始的地方.
我错过了一些明显的东西吗?
解决方法
您应该使用bundle exec运行命令以确保获得正确的依赖项.所以运行:
bundle exec rake db:migrate
有关更详细的帖子,请参阅Yehuda Katz博客文章http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right/
如果你仍然有问题,似乎还有其他几个人有同样的问题How to fix the uninitialized constant Rake::DSL problem on Heroku?他们通过在他们的Rakefile中添加以下内容来解决:
require 'rake/dsl_definition' require 'rake'