Ошибка рейка Heroku

Когда я запускаю rake db:migrate на Heroku, я получаю сообщение об ошибке. У меня нет проблем с запуском локально.

Это отлично работает:

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>'

Как решить эту проблему?


person Deepak    schedule 16.06.2011    source источник
comment
посмотрите на stackoverflow.com/questions/6181312/   -  person Casual Coder    schedule 16.06.2011


Ответы (2)


Либо обновитесь до rails 3.0.9, либо добавьте это в Gemfile.

драгоценный камень "грабли", "0.8.7"

person eugen    schedule 16.06.2011
comment
Я все еще сталкивался с этой проблемой с 3.0.9, и мне пришлось добавить 0.8.7 в Gemfile. Кроме того, после этого вам нужно запустить пакет обновления rake, чтобы восстановить ваш Gemfile.lock, а также отправить новый Gemfile.lock в heroku. - person Jan Hettich; 19.06.2011
comment
Этот способ работает для меня. До этого я пытался добавить require 'rake/dsl_definition' в моем Rakefile, но это не помогло. - person William Notowidagdo; 21.06.2011

Из 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 `'

Закрепить рейк до 0.8.7 в вашем Gemfile

драгоценный камень «грабли», «0.8.7»

Обратите внимание, вы, вероятно, уже заблокированы в 0.9.X, поэтому вам нужно сделать:

пакет обновлений грабли

person stephjang    schedule 08.07.2011
comment
Ссылка не работает (страница, которую вы ищете, не может быть найдена). - person Peter Mortensen; 29.10.2011
comment
Спасибо, что сообщили об этом. Но... ответ остается прежним и, по сути, является тем же решением, что и верхний ответ. Я просто посчитал необходимым указать автора, так как он был процитирован дословно. - person stephjang; 02.12.2011