9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RailsでDBパスワード等を環境変数(.env)で管理する

Posted at

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に下記を追記します。

Gemfile
gem 'dotenv-rails'

忘れずに、bundle installします。

bundle install

.envファイルを作成する

Railsアプリのルートディレクトリに移動し、下記を実行。

touch .env

.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にコミットされないようにします。
(既に設定していれば修正不要)

.gitignore
.env

終わり

思った以上に簡単に利用することができますね。
環境変数は多くのRailsアプリで利用することになると思うので、できればこの記事を見なくても使えるようにしたい所。
.bash_profileを利用する場合はgemを導入する必要がないのでラクそうだけど、利用手順はちょっと忘れそうな感じがします…。

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?