FreshConnectionからslaveというキーワードを廃止しました
FreshConnectionのversion2.3.0から、slave
というキーワードを使うことをやめました。
詳細はこちらのPRを見てもらうとして、代わりに replica
というキーワードを使うようになりました。
version2.3.xの間は以下のような条件で slave
の設定を使うようにしています。
- replica group名が
replica
(デフォルトもこれ) - database.ymlに
replica
の項目がなく、slave
が存在する
つまり、何も変えずにバージョンアップしてもそのまま動くようになっています。ただ、Deprecation Warningを出すようにしています。
この挙動は version2.4.0で削除する予定です。
また最新のversion2.3.1では、環境変数を使ってDBへの接続設定をすることができるようになりました。
この機能がRailsにあったことを全然知らなかったのですが、以下のように DATABASE_URL
という名前の環境変数を用意しておくと、それをDBへの接続設定に使います。
DATABASE_URL=adapter://dbuser:dbpass@dbhost:dbport/dbname?querypath
database.yml
も存在している場合はマージされるようです。
同様に、FreshConnectionの接続設定も環境変数でできるようになりました。
FreshConnectionでは以下のような変数名を使います。
DATABASE_(replica group名)_URL
デフォルトなら、DATABASE_REPLICA_URL
を使います。
Railsのsecret.ymlとかもそうですが、コード上に残したくないパスワードや秘密鍵等は環境変数経由で渡すのが主流になってきているみたいですね。
リポジトリの履歴に乗っちゃうのも問題だし、こうするほうがいいのは分かるのですが、実のところ環境変数で設定するのって、なんとなくいまいちな感じを覚えます。異なるアプリケーションで変数名が被らないようにしなきゃいけないですし(いまのところ、これはあんまり気にされてないみたい)。もっとスマートな方法があるといいのですが。