rails6 envファイルを使用する

rails6 envファイルを使用する

rails6で、envファイルを使用して環境変数を利用して、DBの接続情報などに利用するまでの手順を記述してます。railsのバージョンは6.1.0です。

環境

  • OS ubuntu20.10
  • ruby 2.7.2
  • rails 6.1.0
  • Postgresql 13.1 (dockerで構築)

事前準備

Gemfileに、envファイルを管理するためのgem「dotenv-rails」を追加します。

gem "dotenv-rails"

インストールします。

bundle install

envファイル作成

railsのプロジェクト配下に「.env」ファイルを作成して、接続情報を記述します。

DATABASE_HOST = 0.0.0.0
DATABASE_USER = mebee
DATABASE_PASSWORD = password

設定すると「rails c」で確認することが可能です。

rails c

irb(main):001:0> ENV['DATABASE_HOST']
=> "0.0.0.0"
irb(main):002:0> ENV['DATABASE_USER']
=> "mebee"

database.yml

設定した環境変数を、database.ymlで使用します。

default: &default
  adapter: postgresql
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: <%= ENV['DATABASE_USER'] %>
  password: <%= ENV['DATABASE_PASSWORD'] %>
  host: <%= ENV['DATABASE_HOST'] %>
  timeout: 5000

これで各環境で、envファイルを編集すれば、環境に合わせた設定を利用することが可能です。

「.env.sample」などを作成しておくと、他のメンバー、これをコピーして使用することができるので便利です。

※「.env」は、重要な情報が記述されているため「github」などには、そのままアップしないように注意して下さい。