如何在heroku的database.yml中覆盖pool和reaping_frequency

Sac*_*iya 6 postgresql heroku heroku-postgres ruby-on-rails-4.1

我正在使用带有Rails 4.1.1和Ruby 2.1.1的heroku.我正在使用heroku的默认数据库配置.这就是我将database.yml放入.gitignore并且我不database.yml用于生产的原因.

我正面临着问题PG::ConnectionBad: PQsocket() can't get socket descriptor和解决我需要设置的错误reaping_frequency.

reaping_frequency可以告诉活动记录进行检查,看是否连接是挂起或死每隔N秒,终止它们.虽然很可能随着时间的推移,您的应用程序可能会挂起一些连接,但如果代码中的某些内容导致挂起连接,则收割机将无法永久解决问题.

现在我想将此配置添加到database.yml.

  reaping_frequency: 10
Run Code Online (Sandbox Code Playgroud)

所以我应该直接添加此配置database.yml以覆盖或是否有任何其他更好的方法将此频率设置为heroku?

提前感谢您的建议.

Mus*_*ffa 5

在配置中的config/unicorn.rb或config/puma.rb中设置池和reaping_frequency:

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)
Run Code Online (Sandbox Code Playgroud)