【问题标题】:JRuby on Rails rake db: tasks all abort with jdbc mysqlJRuby on Rails rake db:任务全部用 jdbc mysql 中止
【发布时间】:2012-03-26 17:02:22
【问题描述】:

我们正在尝试将现有的 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

【问题讨论】:

    标签: mysql ruby-on-rails jdbc rake jruby


    【解决方案1】:

    到目前为止,我可以说的是,在解决其他问题并碰巧启动相关源代码时遇到了这个问题,这个 rake 任务正在死亡,因为它正在尝试迭代当前任务的操作,但是动作集为零。

    准确理解其中的简洁和未注释代码中的错误之处是很困难的。有些东西正在使这个极其脆弱的系统崩溃。我有一个奇怪的猜测。如果您将“适配器:jdbcmysql”作为 YML 中每个数据库节的第一部分而不是“数据库:webgrouper_production”,会发生什么?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      • 2011-02-09
      • 2010-09-30
      • 2017-06-21
      • 1970-01-01
      • 2017-10-18
      • 1970-01-01
      相关资源
      最近更新 更多