2014-12-09 55 views
6

我在Rails 4.1.1和Ruby 2.1.1中使用了heroku。我正在使用heroku的默認數據庫配置。這就是爲什麼我將database.yml放入.gitignore中,並且我沒有使用database.yml進行生產。如何在heroku的database.yml中重寫pool和reaping_frequency

我面臨的問題爲「PG :: ConnectionBad:PQsocket()無法獲取套接字描述符」和解決這個錯誤我需要設置reaping_frequency(在「reaping_frequency」可以告訴活動記錄進行檢查,看是否連接每隔N秒就會掛起或死掉,並終止它們雖然隨着時間的推移,您的應用程序可能會有一些掛起的連接,但如果代碼中的某些內容導致掛起連接,收割者將不會永久解決問題。 )。

現在我想將這個配置添加到database.yml。

reaping_frequency: 10 

這樣,我直接在database.yml中添加該配置覆蓋或有任何其他更好的方法來設置此頻率爲Heroku的?

在此先感謝您的建議。

回答

5

在配置你的配置/ unicorn.rb或配置/ 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)