おおいしつかさ


旅行とバイクとドライブと料理と宇宙が好き。
Ubie Discoveryのプログラマ。
Share:  このエントリーをはてなブックマークに追加

FreshConnectionをRails4.2に対応させました

FreshConnectionは、Railsで複数のスレーブDBを簡単に扱えるようになるgemです。

https://github.com/tsukasaoishi/fresh_connection

今回、バージョン0.3.0をリリースしました。このバージョンからRails4.2でも動くようになっています。
FreshConnectionは acts_as_readonlyable (知らない人は古参のRailsエンジニアに聞いてみてください) と同じインターフェースを持たせています。これにより、レガシィなRailsアプリをバージョンアップするときでも、コードを一切変える必要がありません。
しかしそろそろその役目も終えているのでは、と考えています。もうacts_as_readonlyableを使っているRailsアプリなんてないですよね? ぼく個人的には、acts_as_readonlyableがマスターDBにアクセスするときに readonly(false) を使うのがずっと気に入らないと思っていました。
そこで、今回の0.3.0からFreshConnectionはマスターDBにアクセスするための新しいインターフェースを用意することにしました。readonly(false)もまだ使えますが、今後は以下のように書くようにしてください。

Article.read_master.where(id: 1).first  

マスターDBにアクセスしたいときには read_master を使います。readonly(false)は次のバージョンでdeprecatedのwarningが出るようにする予定です。そしてその次のバージョン(たぶん1.0.0)ではreadonly(false)を使えなくするつもりです。今から少しずつ書き換えるか、synvertでも使いましょう。

FreshConnectionの0.3.0に対応したEbisuConnectionの0.2.0も同時にリリースしています。

https://github.com/tsukasaoishi/ebisu_connection

ちなみにFreshConnectionもEbisuConnectionもRuby2.0以上を対象にしています。
このブログもついでにRails4.2にアップデートしてRuby2.2.1で動かすようにしました。