JRuby на Rails rake db: все задачи прерываются с помощью jdbc mysql - PullRequest
0 голосов
/ 26 марта 2012

мы пытаемся интегрировать существующую базу данных mysql в наше приложение jruby on rails. Наш клиент предоставил нам скелет оголенных рельсов, который не был настроен для отдельной базы данных. Позже нам предоставили базу данных sql, и нас попросили интегрировать ее в наше приложение, используя mysql. Мы начали с создания файла database.yml с необходимой информацией. Затем мы выполнили команду rake db: create, что привело к появлению следующего сообщения об ошибке ниже. Любые предложения о том, что мы делаем не так? Мы беспомощны. Спасибо заранее.

    $ rake db:create --trace
    rake aborted!
    undefined method `each' for nil:NilClass
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/activerecord-jdbc-adapter-1.2.2/lib/arjdbc/jdbc/jdbc.rake:15:in `redefine_task'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/activerecord-jdbc-adapter-1.2.2/lib/arjdbc/jdbc/jdbc.rake:23:in `(root)'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/rake-0.9.2.2/lib/rake/task_manager.rb:207:in `in_namespace'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/rake-0.9.2.2/lib/rake/dsl_definition.rb:102:in `namespace'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/activerecord-jdbc-adapter-1.2.2/lib/arjdbc/jdbc/jdbc.rake:22:in `(root)'
    org/jruby/RubyKernel.java:1052:in `load'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/activerecord-jdbc-adapter-1.2.2/lib/arjdbc/jdbc/jdbc.rake:234:in `load'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:223:in `load_dependency'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:640:in `new_constants_in'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:639:in `new_constants_in'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:223:in `load_dependency'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:234:in `load'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/rake-0.9.2.2/lib/rake/rake_module.rb:25:in `load_rakefile'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/rake-0.9.2.2/lib/rake/default_loader.rb:6:in `load'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/rake-0.9.2.2/lib/rake/application.rb:569:in `load_imports'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/rake-0.9.2.2/lib/rake/application.rb:508:in `raw_load_rakefile'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/rake-0.9.2.2/lib/rake/application.rb:82:in `load_rakefile'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/rake-0.9.2.2/lib/rake/application.rb:81:in `load_rakefile'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/rake-0.9.2.2/lib/rake/application.rb:65:in `run'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/gems/rake-0.9.2.2/bin/rake:33:in `(root)'
    org/jruby/RubyKernel.java:1052:in `load'
    /Users/rath_rio/.rvm/gems/jruby-1.6.6@webgrouper/bin/rake:19:in `(root)'

our system specification: 
Java SE 6
JRuby 1.6.6
Rails 3.1

we use following gems for our datebase:
gem 'mysql2', '~>0.3.0'
gem "jdbc-mysql", "~> 5.1.13"
gem "activerecord-jdbc-adapter", "~> 1.2.2"
gem "activerecord-jdbcmysql-adapter", "~> 1.2.2"

our database.yml file:
development:
    database: webgrouper_development
    adapter: jdbcmysql
    encoding: utf8
    reconnect: true
    pool: 5
    username: root
    password: 
    host: 127.0.0.1

test:
    database: webgrouper_test
    adapter: jdbcmysql
    encoding: utf8
    reconnect: false
    pool: 5
    username: root
    password: 
    host: 127.0.0.1

production:
    database: webgrouper_production
    adapter: jdbcmysql
    encoding: utf8
    reconnect: false
    pool: 5
    username: root
    password: 
    host: 127.0.0.1

1 Ответ

0 голосов
/ 26 апреля 2012

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

Трудно понять, что именно было сделано неправильно в кратком и некомментированном коде.Что-то заставляет эту невероятно хрупкую систему сломаться.У меня странное дикое предположение.Что произойдет, если в качестве первой части каждого раздела базы данных в YML вы добавите «adapter: jdbcmysql» вместо «database: webgrouper_production»?

...