Rails: проблема с миграцией в производственном режиме - PullRequest
0 голосов
/ 14 января 2012

Я использую Rails 3.1.0 и пытаюсь развернуть свое приложение. Я использую драгоценный камень Capistrano, и он работает, но не для миграции. Когда он запускает команду rake db:migrate RAILS_ENV=production, он выводит следующее:

(in /srv/www/MY_APPLICATION/releases/20120113203834)
rake aborted!
uninitialized constant Rake::DSL
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/tasklib.rb:8:in `<class:TaskLib>'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/tasklib.rb:6:in `<module:Rake>'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/tasklib.rb:3:in `<top (required)>'
/usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/testtask.rb:4:in `<top (required)>'
/usr/local/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/test_unit/testing.rake:2:in `<top (required)>'
/usr/local/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/test_unit/railtie.rb:12:in `block in <class:TestUnitRailtie>'
/usr/local/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/railtie.rb:183:in `call'
/usr/local/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/railtie.rb:183:in `block in load_tasks'
/usr/local/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/railtie.rb:183:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/railtie.rb:183:in `load_tasks'
/usr/local/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/engine.rb:396:in `block in load_tasks'
/usr/local/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/application/railties.rb:8:in `each'
/usr/local/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/application/railties.rb:8:in `all'
/usr/local/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/engine.rb:396:in `load_tasks'
/usr/local/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/application.rb:103:in `load_tasks'
/usr/local/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/railtie/configurable.rb:30:in `method_missing'
/srv/www/MY_APPLICATION/releases/20120113203834/Rakefile:7:in `<top (required)>'
/usr/local/lib/ruby/1.9.1/rake.rb:2373:in `load'
/usr/local/lib/ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile'
/usr/local/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'
/usr/local/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
/usr/local/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile'
/usr/local/lib/ruby/1.9.1/rake.rb:1991:in `run'
/usr/local/bin/rake:31:in `<main>'

Я также пытался запустить задачу rake прямо в оболочке, но она не работает. Я получаю те же ошибки.

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


Кроме того, моя удаленная машина работает Ubuntu 10.04 , и если я подключаю логи (tail -f /var/log/apache2/error.log), я получаю следующий вывод каждый раз, когда пытаюсь просмотреть веб-страницу своего приложения:

cache: [GET /start] miss

Запустив команду cap deploy:migrations (относится к жемчужине Капистрано), я заметил следующее:

...

  * executing `deploy:migrate'
  * executing "cd /srv/www/MY_APPLICATION/releases/20120113220043 && rake RAILS_ENV=production  db:migrate"
    servers: ["96.126.127.122"]
    [96.126.127.122] executing command
*** [err :: 96.126.127.122] /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/file_utils.rb:9: warning: already initialized constant RUBY
*** [err :: 96.126.127.122] /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/file_utils.rb:86: warning: already initialized constant LN_SUPPORTED
 ** [out :: 96.126.127.122] (in /srv/www/MY_APPLICATION/releases/20120113220043)
*** [err :: 96.126.127.122] rake aborted!

...
...