【问题标题】:Heroku rake errorHeroku 耙子错误
【发布时间】:2011-09-16 09:01:49
【问题描述】:

当我在 Heroku 上运行 rake db:migrate 时,出现错误。我在本地运行它没有问题。

这很好用:

C:\unaton>rake db:migrate

但是当我使用时

C:\unaton>heroku rake db:migrate

然后我收到以下错误。

(in /app)
rake aborted!
uninitialized constant Rake::DSL
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:8:in `<class:Ta
skLib>'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:6:in `<module:R
ake>'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:3:in `<top (req
uired)>'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/rdoctask.rb:20:in `<top (r
equired)>'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.7/lib/rails/tasks/documentation.r
ake:1:in `<top (required)>'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:15:in `block
 in <top (required)>'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:6:in `each'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.7/lib/rails/tasks.rb:6:in `<top (
required)>'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:214:in
 `initialize_tasks'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:139:in
 `load_tasks'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.7/lib/rails/application.rb:77:in
`method_missing'
/app/Rakefile:7:in `<top (required)>'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2373:in `load'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile'
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:1991:in `run'
/usr/ruby1.9.2/bin/rake:31:in `<main>'

我该如何解决这个问题?

【问题讨论】:

标签: ruby-on-rails-3 heroku rake dbmigrate


【解决方案1】:

来自http://softwaregravy.com/rake-not-backwards-compatible/

这是错误:

rake 中止!未初始化的常数 耙::DSL /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2482:in const_missing' /app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.1/lib/rake/tasklib.rb:8:in ' /app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.1/lib/rake/tasklib.rb:6:in `'

在您的 Gemfile 中将 rake 设置为 0.8.7

gem 'rake', '0.8.7'

注意,您可能已经被锁定 进入 0.9.X,所以你需要做一个:

捆绑更新 rake

【讨论】:

  • 链接已断开(“找不到您要查找的页面”)。
  • 感谢您报告此事。但是......答案保持不变,并且与最佳答案基本相同。我只是觉得有必要注明作者,因为它是逐字引用的。
【解决方案2】:

升级到 rails 3.0.9 或将其添加到 Gemfile

宝石“耙子”,“0.8.7”

【讨论】:

  • 我在 3.0.9 中仍然遇到了这个问题,不得不将“0.8.7”添加到 Gemfile。此外,您需要在此之后运行“bundle update rake”以重新生成您的 Gemfile.lock,并将新的 Gemfile.lock 也推送到 heroku。
  • 这种方式适合我。在此之前,我曾尝试在我的 Rakefile 中 add require 'rake/dsl_definition',但没有帮助。
猜你喜欢
  • 2014-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-25
  • 2023-03-14
  • 2015-11-13
  • 2011-09-08
  • 1970-01-01
相关资源
最近更新 更多