外部変数でRailsの開発環境と本番環境を使い分ける

こんにちは!
5月からインターファームでインターンをさせて頂いている@ij_spitzです。

今までRailsを使ったことはほとんどなかったので、
メンターの@h3_potetoさんにいろいろ教えてもらいながら開発をしています。


Railsを使ってみて、驚いたことのひとつに
Railsのフォルダの中に開発とテストと本番の環境が用意されていることでした。

そこでどうやって開発やテスト、本番のそれぞれで
DBの名やURLを使い分けるのかという疑問を持ちました。
今まで自分の作っていたプロダクトではconfig.xmlなどを作って
そこから読み出して使っていました。

今回はその方法は置いておいて、
@h3_potetoさんに教えてもらった外部変数を使う方法をご紹介します。

1. まず.bash_profileで環境変数の設定をします。

zshを使っている人は.zprofileに書きましょう。)

export DATABASE_NAME_DEVELOP=langmatch_develop
export DATABASE_NAME_PRODUCT=langmatch_product
2. 次に書き換えた.bash_profileの設定を反映します。
$ source ~/.bash_profile
3. そして環境変数を出力します。(今回はdatabase.ymlで出力)
development:
  <<: *default
  database: <%= ENV['DATABASE_NAME_DEVELOP'] %>

以上で設定は完了です。


間違えやすいポイントとして、以下に気をつければ簡単にできると思います。
・sourceコマンドの実行し忘れ
・shellscriptでの文法間違い

以上、インターンの@ij_spitzでした。