続・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とかでソース周りは持ちたくないし