続・Rails(ActiveRecord)でデータベースへのコネクションプーリングをさせなくする
毎回lib/に置くの面倒
サービスによっては,requireしているかで管理するのが面倒だったので*1
@disable_pooling = spec.config[:disable_pooling] || false
として,前のエントリでオーバライドしていた部分を@disable_poolingの値を見て分岐するようにした.
ActiveRecord::ConnectionAdapters::ConnectionPool.new(spec)
の時にspec.configとしてdatabase.ymlの内容が入って来ているので.
これでdatabase.ymlとかに
production: adapter: mysql database: nagios_status username: hmsk password: negipo host: 192.168.11.1 port: 3306 encoding: utf8 disable_pooling: true
とか書いて
接続先のDBによってはでコネクションプールを外したり外さなかったりするのを選択出来るようにした.記載がなかったらプールされる.boolじゃないのでfalseと書くと"false"と扱われるのでtrueになる気がする.あほか.
これでマスタはプールして,スレーブはプールしないというような設定が出来るようになった.便利.
DB用のプロキシサーバ準備しろって話ですが.
*1:puppetとかでソース周りは持ちたくないし