Postgresql 如何在heroku'中覆盖池和收割频率;s database.yml
我将heroku与Rails 4.1.1和Ruby 2.1.1一起使用。我正在使用heroku的默认数据库配置。这就是为什么我将database.yml放在Postgresql 如何在heroku'中覆盖池和收割频率;s database.yml,postgresql,heroku,ruby-on-rails-4.1,heroku-postgres,Postgresql,Heroku,Ruby On Rails 4.1,Heroku Postgres,我将heroku与Rails 4.1.1和Ruby 2.1.1一起使用。我正在使用heroku的默认数据库配置。这就是为什么我将database.yml放在.gitignore中,而不是将database.yml用于生产 我面临的问题是,PG::ConnectionBad:PQsocket()无法获取套接字描述符,为了解决此错误,我需要设置reaping\u频率 reaping\u frequency可以告诉活动记录每N秒检查一次连接是否挂起或断开,并终止它们。虽然随着时间的推移,您的应用程序可
.gitignore
中,而不是将database.yml
用于生产
我面临的问题是,PG::ConnectionBad:PQsocket()无法获取套接字描述符
,为了解决此错误,我需要设置reaping\u频率
reaping\u frequency
可以告诉活动记录每N秒检查一次连接是否挂起或断开,并终止它们。虽然随着时间的推移,您的应用程序可能会有一些连接挂起,但如果代码中的某些内容导致连接挂起,那么“收割者”将不会是问题的永久解决方案
现在我想将此配置添加到数据库.yml
中
reaping_frequency: 10
那么,我应该直接在database.yml
上添加此配置以进行覆盖,还是有其他更好的方法将此频率设置为heroku
提前感谢您的建议。在您的config/unicorn.rb或config/puma.rb中设置池和收割频率:
config = ActiveRecord::Base.configurations[Rails.env] ||
Rails.application.config.database_configuration[Rails.env]
config['pool'] = ENV['DB_POOL'] || 5
config['reaping_frequency'] = ENV['DB_REAP_FREQ'] || 10 # seconds
ActiveRecord::Base.establish_connection(config)
Rails 4.0+可以在
config/database.yml
中直接指定pool
和reaping\u frequency
请参见以下API链接中的选项: