STUDY MEMO

学習のメモ書き

<Ruby on Rails> データベースの設定(postgresql)

データベースの接続方法

・config/database.yml
環境変数

両方存在する場合

提供された接続情報が重複している:環境変数が優先
提供された接続情報が競合している:環境変数が優先

両方存在していて、かつconfig/database.ymlが優先されるようにしたい場合、database.ymlで"url"サブキーで明示的にURL接続を指定する。

production:
  url: my_database

production環境では、database.yml内で明示的にENV['DATABASE_URL']を使うのがベストプラクティス。
理由:データベース接続のパスワード等の秘密情報をGitなどのソースコントロールに直接登録するのは望ましくないため。

# config/database.yml
...
production:
  <<: *default
  database: appname_production
  username: appname
  password: <%= ENV['APPNAME_DATABASE_PASSWORD'] %>
  url: <%= ENV['DATABASE_URL'] %>
...

参考文献

Rails アプリケーションを設定する - Railsガイド