前人未踏の領域へ WEB・インフラ・プログラミング全般編

フロントエンド、バックエンド、インフラ、言語など、アプリ開発、IOT以外の記録

database.ymlの環境変数が読み込まれない

課題

DBのパスワードを設定したが環境変数が読み込まれない。stagingだと問題ないがproductionでエラーになる。

production:
  <<: *staging
  database: hoge_production
  host: <%= ENV['DB_HOST'] %>
  password: <%= ENV['DB_PASS'] %>

原因

自動生成させて設定したproduction用のパスワードの先頭に # が含まれていたため(><)
パスワード全体が全部コメント扱いになって空文字セットしたことにされてたw

対応

ダブルクウォートで囲ってあげて解決。

production:
  <<: *staging
  database: hoge_production
  host: "<%= ENV['DB_HOST'] %>"
  password: "<%= ENV['DB_PASS'] %>"

またしょうもないことで時間を無駄にした。

教訓

  • 文字列を環境変数から読み込む場合はダブルクウォートで予め囲む
  • パスワードに記号を使いたくてもプロフラムに影響しそうなのは避ける(?)
/* Responsive: yes */