Postgresql 如何在heroku'中覆盖池和收割频率;s 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秒检查一次连接是否挂起或断开,并终止它们。虽然随着时间的推移,您的应用程序可

我将heroku与Rails 4.1.1和Ruby 2.1.1一起使用。我正在使用heroku的默认数据库配置。这就是为什么我将database.yml放在
.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链接中的选项: