awsにて、Cannot load database configurationでユニコーンが立ち上がらない

未分類

現在、railsでアプリを作成し、AWSにデプロイをしていたところで下記のエラーが発生。

config/database.yml:53:in `<main>': Cannot load database configuration:
undefined method `[]' for nil:NilClass (NoMethodError)

解決するのに時間がかかったため、どうやって対処したのか残しておきます。

エラーが発生した状況

database.ymlには、credentials.ymlで設定した環境変数を入れていた。

production:
  <<: *default
  database: <%= Rails.application.credentials.db[:database] %>
  username: <%= Rails.application.credentials.db[:username] %>
  password: <%= Rails.application.credentials.db[:password] %>
  socket: <%= Rails.application.credentials.db[:socket] %>

credentials.ymlには環境変数はしっかり登録できており、rails consoleでは、中身はうまく取れている。

なお、EC2内のmaster.keyは、こちらの記事を参考に、app/shared/config配下に設置した。

どうやってエラーを解決したか

app/config配下にmaster.keyを設置。

rails のバージョンなのか(参考にしたサイトは5系、今回は6系)、app/config配下にmaster.keyを配置することでmasterキーを読み込み、credential.yml.encが読み込まれた!

コメント

タイトルとURLをコピーしました