DBのパスワードやAPIのアクセスキー等の重要な情報は、
Gitにあげたくなかったり開発環境と本番環境で異なっていたりします。
そういった情報の管理によく利用されるのが環境変数というものらしい。
Railsで環境変数を利用する場合、大まかに下記2パターンある様子。
①.bash_profileに記述する
②dotenv-railsというgemを利用し.envに記述する
今回は、②のenvファイルを利用する方法を自分用に残しておきます。
間違い等あれば、ご指摘いただければ幸いです。
環境
MacOS Catalina
Rails 6.0.3.2
Ruby 2.6.3
mysql 8.0.22
gemを導入する
Gemfileに下記を追記します。
gem 'dotenv-rails'
忘れずに、bundle installします。
bundle install
.envファイルを作成する
Railsアプリのルートディレクトリに移動し、下記を実行。
touch .env
.envファイルを修正し、管理したいキーを追加します。
DB_NAME=RailsApp_production
DB_USERNAME=root
DB_PASSWORD=12345678
DB_HOSTNAME=hogehoge
○○=hogehoge の○○の部分がキーになるので、使用する際に分かりやすいキー名に設定します。
設定した環境変数を使用する
ENV['キー名']で呼び出すことができます。
ENV['DB_NAME']
ENV['DB_USERNAME']
環境変数をgitにあげないようにする
せっかく環境変数を利用しているのに、gitにあげちゃったら元も子もありません。
.gitignoreに下記の行を追記し、.envがgitにコミットされないようにします。
(既に設定していれば修正不要)
.env
終わり
思った以上に簡単に利用することができますね。
環境変数は多くのRailsアプリで利用することになると思うので、できればこの記事を見なくても使えるようにしたい所。
.bash_profileを利用する場合はgemを導入する必要がないのでラクそうだけど、利用手順はちょっと忘れそうな感じがします…。