2014-12-09 12 views
6

Rails 4.1.1 ve Ruby 2.1.1 ile heroku kullanıyorum. Ben heroku için varsayılan veritabanı yapılandırması kullanıyorum. Bu yüzden .timignore içine database.yml koymuş ve üretim için database.yml kullanmıyorum.Heroku'nun database.yml'deki havuzu ve reaping_frequency'i nasıl geçersiz kılabilirsiniz

"PG :: ConnectionBad: PQsocket() yuva tanıtıcısı alamıyor" sorunuyla karşı karşıyayım ve reaping_frequency ayarlamak için bu hatayı çözmem gerekiyor ('reaping_frequency' bağlantıların olup olmadığını kontrol etmek için Aktif Kaydı bildirebilir her N saniyede asılı ya da öldürülür ve onları sonlandırır.Aşağıda zaman içinde askıda olan birkaç bağlantınızın olması muhtemel olsa da, kodunuzda bir şey asılı bağlantılara neden oluyorsa, orak makinesi problemin kalıcı bir düzeltmesi olmayacaktır.).

Şimdi bu yapılandırmayı database.yml dosyasına eklemek istiyorum.

reaping_frequency: 10 

yüzden doğrudan geçersiz kılmak için database.yml üzerinden bu yapılandırma eklemek gerekir veya herhangi Heroku içine bu frekansı ayarlamak için başka iyi bir yolu var mı?

Öneriniz için şimdiden teşekkür ederiz. config config/unicorn.rb veya config/puma.rb seti havuzu ve reaping_frequency olarak

cevap

5

: Doğrudan config/database.yml içinde pool ve reaping_frequency belirtebilirsiniz 4.0+

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)