ActiveRecord :: ConnectionNotEstablished在AWS OpsWorks中

时间:2014-02-17 09:28:08

标签: ruby-on-rails ruby activerecord devise aws-opsworks

我已经尝试了各种解决方案,包括下面的这个,但仍然得到相同的错误。感谢任何线索。

Removing database.yml when using Mongoid in Rails 3.2

root@cumulonimbus:/srv/www/myapp/current/log# cat unicorn.stderr.log 
I, [2014-02-15T13:59:29.053668 #19768]  INFO -- : Refreshing Gem list
[deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.
I, [2014-02-15T14:00:11.666899 #19768]  INFO -- : listening on addr=/srv/www/myapp/shared/sockets/unicorn.sock fd=14
E, [2014-02-15T14:00:11.667401 #19768] ERROR -- : ActiveRecord::ConnectionNotEstablished (ActiveRecord::ConnectionNotEstablished)
/home/deploy/.bundler/myapp/ruby/1.9.1/gems/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:410:in `retrieve_connection'
/home/deploy/.bundler/myapp/ruby/1.9.1/gems/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection_specification.rb:171:in `retrieve_connection'
/home/deploy/.bundler/myapp/ruby/1.9.1/gems/activerecord-3.2.11/lib/active_record/connection_adapters/abstract/connection_specification.rb:145:in `connection'
/srv/www/myapp/shared/config/unicorn.conf:31:in `block in reload'
/home/deploy/.bundler/myapp/ruby/1.9.1/gems/unicorn-4.8.2/lib/unicorn/http_server.rb:515:in `call'
/home/deploy/.bundler/myapp/ruby/1.9.1/gems/unicorn-4.8.2/lib/unicorn/http_server.rb:515:in `spawn_missing_workers'
/home/deploy/.bundler/myapp/ruby/1.9.1/gems/unicorn-4.8.2/lib/unicorn/http_server.rb:140:in `start'
/home/deploy/.bundler/myapp/ruby/1.9.1/gems/unicorn-4.8.2/bin/unicorn_rails:209:in `<top (required)>'
/home/deploy/.bundler/myapp/ruby/1.9.1/bin/unicorn_rails:23:in `load'
/home/deploy/.bundler/myapp/ruby/1.9.1/bin/unicorn_rails:23:in `<main>'

root@cumulonimbus:/srv/www/myapp/current# grep -r active_record config/
config/environments/test.rb:  # config.active_record.schema_format = :sql
config/initializers/session_store.rb:# MyApp::Application.config.session_store :active_record_store
config/initializers/devise.rb:  # Load and configure the ORM. Supports :active_record (default) and
config/application.rb:# require "active_record/railtie"
config/application.rb:    # config.active_record.observers = :cacher, :garbage_collector, :forum_observer

root@cumulonimbus:/srv/www/myapp/current# bundle show|grep -E 'unicorn|rails'

•rails(3.2.11)

•独角兽(4.8.2)

root@cumulonimbus:/srv/www/myapp/current# gem -v

2.1.11

root@cumulonimbus:/srv/www/myapp/current# ruby -v

ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]

1 个答案:

答案 0 :(得分:0)

问题排序。 显然,OpsWorks独角兽食谱库存引用了ActiveRecord。 因此,通过注释/删除整个块的before_fork..end和after_fork..end帮助我们部署使用mongoid的应用程序。

https://github.com/aws/opsworks-cookbooks/blob/master-chef-11.4/unicorn/templates/default/unicorn.conf.erb

我们需要利用sock文件而不是NginX中的port方法,这对我们的应用程序非常有用。

另外两个任务是覆盖stock unicorn的默认键值,并使用shared / script / unicorn脚本作为deploy用户自动启动。