database.ymlの管理方法について
database.ymlの扱い方についてベストプラクティスがあればご教示いただきたく質問しました。
私はいつも以下の方法でdatabase.ymlを運用しています。
config/database.yml
をconfig/database.yml.default
などにリネーム.gitignore
にconfig/database.yml
config/database.yml.default
を追加してバージョン管理から外す- git clone 後にdevelopmentでは
cp config/database.yml.default config/database.yml
をする
productionでは /var/www/app_name/shared/config/database.yml
を作成しています。
このように運用するメリットは、
- (database.ymlにDBのパスワードを記載していた場合) パスワードが記載されたファイルをバージョン管理しなくて良い
- developmentのDBの設定は開発者に依存するため、 パスワードを空にしている人やパスワードを設定している人がいた場合、database.ymlをバージョン管理しない方が使い勝手が良い
などがあります。
ただ、最近マストドンのdatabase.ymlを見ていたところ、パスワードなどは環境変数から取得するようになっていることと、rails new した際のデフォルトはdatabase.ymlとなっていてrailsとしてはdatabase.ymlはバージョン管理される前提になっているのではと思うようになりました。
https://github.com/tackeyy/mastodon/blob/master/config/database.yml
そこで他の方のdatabase.ymlの管理方法やベストプラクティスがあれば伺いたくこのような質問をしました。