Ошибка db:migrate rake прервана из-за неинициализированной константы Rake::FileUtilsExt

Я новичок в Ruby on Rails и пытаюсь развернуть простой Cappuccino приложение с Ruby on Rails на Heroku в течение последних трех дней, и каждый раз, когда я инициализирую (heroku rake db:migrate), я продолжаю получать следующую ошибку.

(in /app)
rake aborted!
uninitialized constant Rake::FileUtilsExt
/usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2482:in `const_missing'
/app/Rakefile:15:in `<module:RakeFileUtils>'
/app/Rakefile:14: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>'

Я обновил все необходимые гемы и бандлы. Вот мой список драгоценных камней для справки:

*** LOCAL GEMS ***

abstract (1.0.0)
actionmailer (3.0.9, 3.0.8, 3.0.7, 3.0.5)
actionpack (3.0.9, 3.0.8, 3.0.7, 3.0.5, 2.3.8)
activemodel (3.0.9, 3.0.8, 3.0.7, 3.0.5)
activerecord (3.0.9, 3.0.8, 3.0.7, 3.0.5)
activeresource (3.0.9, 3.0.8, 3.0.7, 3.0.5)
activesupport (3.0.9, 3.0.8, 3.0.7, 3.0.5, 2.3.8)
arel (2.1.1, 2.0.10, 2.0.9)
builder (3.0.0, 2.1.2)
bundler (1.0.15)
capistrano (2.6.0, 2.5.20)
configuration (1.2.0)
daemons (1.1.3, 1.1.0)
dnssd (2.0)
erubis (2.7.0, 2.6.6)
eventmachine (0.12.10)
fastthread (1.0.7)
fcgi (0.8.8)
heroku (2.3.0, 2.2.8 ruby)
highline (1.6.2, 1.6.1)
hpricot (0.8.4)
i18n (0.6.0, 0.5.0)
jk-ferret (0.11.8.3)
launchy (0.4.0)
libxml-ruby (2.0.6, 1.1.4)
mail (2.3.0, 2.2.19, 2.2.15)
mime-types (1.16)
net-scp (1.0.4)
net-sftp (2.0.5)
net-ssh (2.1.4, 2.1.3)
net-ssh-gateway (1.1.0, 1.0.1)
polyglot (0.3.1)
rack (1.3.0, 1.2.3)
rack-mount (0.8.1, 0.7.1, 0.6.14)
rack-test (0.6.0, 0.5.7)
rails (3.0.9, 3.0.8)
railties (3.0.9, 3.0.8)
rake (0.9.2, 0.8.7)
rdoc (3.6.1)
RedCloth (4.2.7)
rest-client (1.6.3)
ruby-openid (2.1.8)
rubygems-update (1.8.5, 1.6.2)
sequel (3.24.1, 3.20.0)
sinatra (1.2.6, 1.0)
sqlite3 (1.3.3)
sqlite3-ruby (1.3.3)
taps (0.3.23)
term-ansicolor (1.0.5)
thin (1.2.11)
thor (0.14.6)
tilt (1.3.2)
treetop (1.4.9)
tzinfo (0.3.28, 0.3.25)
xmpp4r (0.5)

А вот и список комплектов:

    {Gems included by the bundle:
      * abstract (1.0.0)
      * actionmailer (3.0.8)
      * actionpack (3.0.8)
      * activemodel (3.0.8)
      * activerecord (3.0.8)
      * activeresource (3.0.8)
      * activesupport (3.0.8)
      * arel (2.0.10)
      * builder (2.1.2)
      * bundler (1.0.15)
      * erubis (2.6.6)
      * i18n (0.5.0)
      * mail (2.2.19)
      * mime-types (1.16)
      * polyglot (0.3.1)
      * rack (1.2.3)
      * rack-mount (0.6.14)
      * rack-test (0.5.7)
      * rails (3.0.8)
      * railties (3.0.8)
      * rake (0.9.2)
      * sqlite3 (1.3.3)
      * thor (0.14.6)
      * treetop (1.4.9)
      * tzinfo (0.3.28)}

Я пробовал все, и я на своем личном EOL. Я провел много времени, изучая вопросы здесь и пробуя все доступные.


person jcardenishere    schedule 16.06.2011    source источник
comment
... не могли бы вы распечатать Gemfile.lock?   -  person Luca G. Soave    schedule 20.06.2011


Ответы (3)


Я получаю ту же ошибку на новом сервере Heroku с новым крошечным приложением Rails и не получал ее раньше. Возможно, это новая проблема Heroku?

Отправка локальной базы данных с помощью кранов работала как быстрое решение, но не является ни масштабируемым, ни разумным долгосрочным решением:

$ sudo gem install taps
$ heroku db:push
person Jake Heimark    schedule 16.06.2011
comment
Не повезло. Вы связались с Heroku для подтверждения? Я напишу им, чтобы узнать, каков статус. Спасибо за ваше предложение. Есть ли другие варианты сейчас? - person jcardenishere; 17.06.2011
comment
Heroku предложил мне удалить требование «rake/file_utils», и если бы я мог запустить его локально, оно должно работать. Я сделал это, и он работает локально, но мне все равно не удалось запустить его с Heroku. Ждем еще ответа от них... - person jcardenishere; 18.06.2011

Есть известная проблема с версией Rake. Попробуйте откатить версию Rake до 0.8.7.

См. замечание от DHH в Твиттере (21 мая 2011 г.): Рейк 0,9. , выпущенный вчера, сломал Rails (и другие). Пока мы ждем исправления, вам нужно иметь gem 'rake', '0.8.7' в файле Gem.

person henry74    schedule 21.06.2011
comment
Генри, спасибо за предложение. Я тоже попробовал это, но возникла та же ошибка. Я решил сделать чистую переустановку всего, а затем обновил код построчно, как только Rails появился на Heroku. Это работало, пока я не добрался до кода панели инструментов в Cappuccino. Так что я снял его, и теперь все работает нормально. Странный. - person jcardenishere; 21.06.2011

Как исправить проблему с неинициализированной константой Rake::DSL на Heroku? звучит похоже.

Может попробовать

require 'rake/file_utils'

в Rakefile, прежде чем требовать «грабли»?

person Allyl Isocyanate    schedule 16.06.2011
comment
Я просто добавил «require rake/file_utils», затем я инициализировал другой мастер git push heroku, чтобы подтвердить, что файлы обновлены, и запустил rake heroku. Тогда я получил ! Внутренняя Ошибка Сервера. Затем я попробовал еще раз, и это та же проблема, что и раньше. - person jcardenishere; 16.06.2011
comment
Я прошел через Как исправить проблему с неинициализированной константой Rake::DSL на Heroku? сообщение, но не повезло с методами, рекомендованными там. - person jcardenishere; 16.06.2011
comment
Наконец заработало. Я просто прошел и удалил все. Загрузил пустой шаблон Ruby on Rails, а затем обновил код построчно. Судя по всему, проблемы вызывала функция панели инструментов в приложении Cappuccino. Не уверен, почему. Во всяком случае, это было мое исправление. - person jcardenishere; 30.06.2011