Ruby on rails 每当Rails中的cron作业失败时';生产';数据库未配置错误

Ruby on rails 每当Rails中的cron作业失败时';生产';数据库未配置错误,ruby-on-rails,ruby-on-rails-4,whenever,Ruby On Rails,Ruby On Rails 4,Whenever,在我的Rails应用程序中,我使用where gem运行Sideqik任务。当我在rails控制台中手动运行该命令时,它可以工作。但是,每当cron失败时,就会出现以下错误:它在日志中不断重复。我怎样才能解决这个问题?有什么问题 /home/pubudu/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.0/lib/active_record/connection_adapters/connection_specification.rb:248:in `res

在我的Rails应用程序中,我使用where gem运行Sideqik任务。当我在rails控制台中手动运行该命令时,它可以工作。但是,每当cron失败时,就会出现以下错误:它在日志中不断重复。我怎样才能解决这个问题?有什么问题

/home/pubudu/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.0/lib/active_record/connection_adapters/connection_specification.rb:248:in `resolve_symbol_connection': 'production' database is not configured. Available: ["development", "test"] (ActiveRecord::AdapterNotSpecified)
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.0/lib/active_record/connection_adapters/connection_specification.rb:211:in `resolve_connection'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.0/lib/active_record/connection_adapters/connection_specification.rb:139:in `resolve'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.0/lib/active_record/connection_adapters/connection_specification.rb:169:in `spec'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.0/lib/active_record/connection_handling.rb:50:in `establish_connection'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.0/lib/active_record/railtie.rb:120:in `block (2 levels) in <class:Railtie>'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active_support/lazy_load_hooks.rb:38:in `instance_eval'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active_support/lazy_load_hooks.rb:38:in `execute_hook'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active_support/lazy_load_hooks.rb:28:in `block in on_load'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active_support/lazy_load_hooks.rb:27:in `each'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active_support/lazy_load_hooks.rb:27:in `on_load'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.0/lib/active_record/railtie.rb:116:in `block in <class:Railtie>'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/railties-4.2.0/lib/rails/initializable.rb:30:in `instance_exec'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/railties-4.2.0/lib/rails/initializable.rb:30:in `run'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/railties-4.2.0/lib/rails/initializable.rb:55:in `block in run_initializers'
    from /home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:226:in `block in tsort_each'
    from /home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:348:in `block (2 levels) in each_strongly_connected_component'
    from /home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:427:in `each_strongly_connected_component_from'
    from /home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:347:in `block in each_strongly_connected_component'
    from /home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:345:in `each'
    from /home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:345:in `call'
    from /home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:345:in `each_strongly_connected_component'
    from /home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:224:in `tsort_each'
    from /home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:205:in `tsort_each'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/railties-4.2.0/lib/rails/initializable.rb:54:in `run_initializers'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/railties-4.2.0/lib/rails/application.rb:352:in `initialize!'
    from /home/pubudu/Projects/istockseller/config/environment.rb:5:in `<top (required)>'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `require'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `block in require'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:240:in `load_dependency'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active_support/dependencies.rb:274:in `require'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/spring-1.2.0/lib/spring/application.rb:92:in `preload'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/spring-1.2.0/lib/spring/application.rb:143:in `serve'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/spring-1.2.0/lib/spring/application.rb:131:in `block in run'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/spring-1.2.0/lib/spring/application.rb:125:in `loop'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/spring-1.2.0/lib/spring/application.rb:125:in `run'
    from /home/pubudu/.rvm/gems/ruby-2.1.5/gems/spring-1.2.0/lib/spring/application/boot.rb:18:in `<top (required)>'
    from /home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from -e:1:in `<main>'
/home/pubudu/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.0/lib/active\u record/connection\u adapters/connection\u specification.rb:248:在'resolve\u symbol\u connection'中:未配置'production'数据库。可用:[“开发”、“测试”](ActiveRecord::AdapterNotSpecified)
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.0/lib/active\u record/connection\u adapters/connection\u specification.rb:211:在'resolve\u connection'中
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.0/lib/active\u record/connection\u adapters/connection\u specification.rb:139:在'resolve'中
来自/home/pubudu/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.0/lib/active\u record/connection\u adapters/connection\u specification.rb:169:in'spec'
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.0/lib/active\u record/connection\u handling.rb:50:在“建立连接”中
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.0/lib/active\u record/railtie.rb:120:in `块(2层)in'
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active\u support/lazy\u load\u hooks.rb:38:in'instance\u eval'
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active\u-support/lazy\u-load\u-hooks.rb:38:in'execute\u-hook'
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active\u-support/lazy\u-load\u-hooks.rb:28:in“block-in-on\u-load”
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active\u support/lazy\u load\u hooks.rb:27:in'each'
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active\u support/lazy\u load\u hooks.rb:27:in“on\u load”
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.0/lib/active\u record/railtie.rb:116:in“block in”
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/railties-4.2.0/lib/rails/initializable.rb:30:in'instance_exec'
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/railties-4.2.0/lib/rails/initializable.rb:30:in'run'
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/railties-4.2.0/lib/rails/initializable.rb:55:“运行中的块初始化器”
from/home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:226:in'block in tsort_each'
from/home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:348:在每个强连接的组件中的“块(2个级别)”中
from/home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:427:在“每个强连接的组件”中
from/home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:347:in“每个强连接的组件中的块”
from/home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:345:in'each'
from/home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:345:in'call'
from/home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:345:“每个强连接的组件”
from/home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:224:in'tsort_each'
from/home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/tsort.rb:205:in'tsort_each'
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/railties-4.2.0/lib/rails/initializable.rb:54:in“run_initializers”
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/railties-4.2.0/lib/rails/application.rb:352:in'initialize!'
from/home/pubudu/Projects/istockseller/config/environment.rb:5:in`'
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active\u-support/dependencies.rb:274:in'require'
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active\u-support/dependencies.rb:274:in'block in require'
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active\u-support/dependencies.rb:240:in'load\u dependencity'
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.0/lib/active\u-support/dependencies.rb:274:in'require'
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/spring-1.2.0/lib/spring/application.rb:92:in'preload'
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/spring-1.2.0/lib/spring/application.rb:143:in'serve'
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/spring-1.2.0/lib/spring/application.rb:131:在“运行中的块”中
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/spring-1.2.0/lib/spring/application.rb:125:in'loop'
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/spring-1.2.0/lib/spring/application.rb:125:in'run'
from/home/pubudu/.rvm/gems/ruby-2.1.5/gems/spring-1.2.0/lib/spring/application/boot.rb:18:in`'
from/home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/site\u ruby/2.1.0/rubygems/core\u ext/kernel\u require.rb:54:in'require'
from/home/pubudu/.rvm/rubies/ruby-2.1.5/lib/ruby/site\u ruby/2.1.0/rubygems/core\u ext/kernel\u require.rb:54:in'require'
from-e:1:in`'

您遇到此错误是因为您的生产设置未正确配置,无法连接到数据库。当您从Rails控制台运行命令时,您正在连接到开发环境,但您的cron作业正在生产环境中运行


Rails有3个内置环境。主要的区别是每个数据库都有自己的数据库,但也有其他的区别

  • 生产,用于代码实时运行时。这个环境进行大量缓存,并且不会向用户显示开发错误消息
  • 开发,用于构建应用程序。这是默认环境,也是您花费大部分时间的环境
  • 测试,用于运行自动测试。这是独立的,主要原因是您的测试套件可以清空并重新创建数据库
    user@foo $ rails c
    Loading development environment (Rails 4.1.1)
    irb(main):001:0> Rails.env
    "development"
    
    user@foo $ RAILS_ENV=production rails c
    Loading production environment (Rails 4.1.1)
    irb(main):001:0> Rails.env
    "production"
    
    set :environment, "development"