database.ymlの扱い方についてベストプラクティスがあればご教示いただきたく質問しました。

私はいつも以下の方法でdatabase.ymlを運用しています。

  1. config/database.ymlconfig/database.yml.default などにリネーム
  2. .gitignoreconfig/database.yml config/database.yml.default を追加してバージョン管理から外す
  3. git clone 後にdevelopmentでは cp config/database.yml.default config/database.yml をする

productionでは /var/www/app_name/shared/config/database.yml を作成しています。

このように運用するメリットは、

  1. (database.ymlにDBのパスワードを記載していた場合) パスワードが記載されたファイルをバージョン管理しなくて良い
  2. 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の管理方法やベストプラクティスがあれば伺いたくこのような質問をしました。