Что вызывает закрытый метод `gsub` для nil: NilClass во время миграции на Rails? - PullRequest
2 голосов
/ 31 марта 2012

Я никогда не отправлял это раньше. Я настраиваю новый сервер с существующим приложением. Попытка запустить миграцию и вот вывод.

root@beta:/vol/opt/dev/capistrano/foo-alpha/releases/20120330233010# RAILS_ENV=production rake db:migrate --trace
rake aborted!
private method `gsub' called for nil:NilClass
/usr/local/rvm/gems/jruby-1.6.6@global/gems/bundler-1.1.3/lib/bundler/runtime.rb:77:in `require'
org/jruby/RubyArray.java:1614:in `each'
/usr/local/rvm/gems/jruby-1.6.6@global/gems/bundler-1.1.3/lib/bundler/runtime.rb:55:in `require'
/usr/local/rvm/gems/jruby-1.6.6@global/gems/bundler-1.1.3/lib/bundler.rb:119:in `require'
/vol/opt/dev/capistrano/foo-alpha/releases/20120330233010/config/application.rb:7:in `(root)'
org/jruby/RubyKernel.java:1027:in `require'
/usr/local/rvm/rubies/jruby-1.6.6/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
/vol/opt/dev/capistrano/foo-alpha/releases/20120330233010/config/application.rb:4:in `(root)'
org/jruby/RubyKernel.java:1052:in `load'
/vol/opt/dev/capistrano/foo-alpha/releases/20120330233010/Rakefile:25:in `load_rakefile'
/usr/local/rvm/gems/jruby-1.6.6@foo/gems/rake-0.9.2.2/lib/rake/application.rb:501:in `raw_load_rakefile'
/usr/local/rvm/gems/jruby-1.6.6@foo/gems/rake-0.9.2.2/lib/rake/application.rb:82:in `load_rakefile'
/usr/local/rvm/gems/jruby-1.6.6@foo/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/local/rvm/gems/jruby-1.6.6@foo/gems/rake-0.9.2.2/lib/rake/application.rb:81:in `load_rakefile'
/usr/local/rvm/gems/jruby-1.6.6@foo/gems/rake-0.9.2.2/lib/rake/application.rb:65:in `run'
/usr/local/rvm/gems/jruby-1.6.6@foo/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
/usr/local/rvm/gems/jruby-1.6.6@foo/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
/usr/local/rvm/gems/jruby-1.6.6@foo/gems/rake-0.9.2.2/bin/rake:33:in `(root)'
org/jruby/RubyKernel.java:1052:in `load'
/usr/local/rvm/gems/jruby-1.6.6@foo/bin/rake:19:in `(root)'

Миграции на моем локальном ноутбуке и на существующем сервере работают нормально. config / database.yml выглядит правильно. База данных запущена и работает, и я могу к ней подключиться. Что это?

Я также только что протестировал rails console, и я также не могу получить консоль. Снова закрытый метод gsub, вызванный для nil: NilClass. Это как-то связано с подключением к базе данных, и я не знаю, как и почему.

** ОБНОВЛЕНИЕ **

После добавления некоторой отладки в runtime.rb возникает исключение:

#<LoadError: no such file to load -- activerecord-jdbcmysql-adapter>

Запутанная часть есть, установлено:

# gem list |grep -i activerecord-jdbcmysql-adapter
activerecord-jdbcmysql-adapter (1.2.2)

Это какая-то ошибка RVM или пакета?

** ПОСЛЕДНИЕ ОБНОВЛЕНИЯ **

Я установил Amazon Linux AMI (другой работает под управлением Ubuntu) и не могу воспроизвести эту проблему там.

1 Ответ

0 голосов
/ 31 марта 2012

Это ошибка в комплекте, о ней сообщалось для rvm-capistrano, пожалуйста, проверьте ваш Gemfile и попробуйте удалить / прокомментировать некоторые драгоценные камни.

https://github.com/carlhuda/bundler/issues/1801

...