データベースのパスワードなど環境に依存する値をdatabase.ymlに入れてしまうと、その他の環境では動作しなくなってしまいます。
そこで、環境変数を管理するファイル.envを開発環境ごとに用意して、Railsプログラムから参照させるようにしましょう。
設定自体はdotenvというgemを使えば簡単にできます。
目次
環境変数を扱うために必要なgemをインストール
Gemfileに下記を追記。
gem 'dotenv'その後インストールしてください。
$ bundle install環境変数を設定する
ルートディレクトリに.envファイルを作成して、下記のように記述します。
DATABASE_USER=root
DATABASE_PASS=passwordキー=値の形にしてください。
環境変数を取得する
作成した環境変数は、コンソール(rails console)、Railsプロジェクト内の各種ファイルでENV['キー']で取得できます。
コンソールの場合は以下。
[1] pry(main)> ENV['DATABASE_USER']
=> "root"
[2] pry(main)> ENV['DATABASE_PASS']
=> "password"database.ymlに記載する場合は以下。
default: &default
adapter: mysql2
encoding: utf8mb4
username: <%= ENV['DATABASE_DEV_USERNAME'] %>
password: <%= ENV['DATABASE_DEV_PASSWORD'] %>
socket: /tmp/mysql.sockまとめ
環境に依存する変数を.envに記録して必要なときに呼び出すようにすれば、開発環境が変わっても問題なく動作するようにできます。
.envはgitなどのホスティングサービスで公開しないようにしておくとよいですね。

コメント