1

Why am I getting an error when I try to update my Heroku database?

Whenever I try any heroku rake... command I get the same error:

$ heroku rake db:setup
(in /app)
rake aborted!
uninitialized constant 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.2/lib/rake/tasklib.rb:8:in `<class:TaskLib>'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:6:in `<module:Rake>'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:3:in `<top (required)>'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/rdoctask.rb:20:in `require'
/app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.2/lib/rake/rdoctask.rb:20:in `<top (required)>'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.8/lib/rails/tasks/documentation.rake:1:in `require'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.8/lib/rails/tasks/documentation.rake:1:in `<top (required)>'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.8/lib/rails/tasks.rb:15:in `load'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.8/lib/rails/tasks.rb:15:in `block in <top (required)>'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.8/lib/rails/tasks.rb:6:in `each'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.8/lib/rails/tasks.rb:6:in `<top (required)>'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.8/lib/rails/application.rb:215:in `require'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.8/lib/rails/application.rb:215:in `initialize_tasks'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.8/lib/rails/application.rb:139:in `load_tasks'
/app/.bundle/gems/ruby/1.9.1/gems/railties-3.0.8/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>'
Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Andy
  • 1,480
  • 14
  • 17

3 Answers3

1

Rakefile should include

require 'rake/dsl_definition'
Anatoly
  • 15,298
  • 5
  • 53
  • 77
  • 2
    [duplicated thread](http://stackoverflow.com/questions/6085610/rails-rake-problems-uninitialized-constant-rakedsl) – Anatoly Jul 21 '11 at 13:10
  • Thanks for that -- I was searching for heroku-specific questions, since I only get this problem with `heroku rake...` – Andy Jul 21 '11 at 13:17
  • That does it... Annoying that I have to edit the Rakefile, and I don't understand why, but it fixes it. Ta. – Andy Jul 21 '11 at 13:35
0

sadly, including require 'rake/dsl_definition' did not work for me. I am using rails 3.0.6. So I reverted back to rake 0.8.7.

JstRoRR
  • 3,693
  • 2
  • 19
  • 20
0

There are two ways to fix this. I have a blog post about it here:

Use an older rake version, or require DSL for the newer gem.

http://codeglot.com/posts/13-you_have_already_activated_rake_0_9_2.

thenengah
  • 42,557
  • 33
  • 113
  • 157