MySQL に対して rails dbconsole する際に database.yml の設定が dotenv で書かれていると接続できない(っぽい)

状況

おま環の疑いが高いです。

結論

config/database.yml に以下のように MySQL の設定を書いていたとします。環境変数は dotenv で定義しているとします。

development:
  adapter: mysql2
  host: <%= ENV['MYSQL_HOST'] %>
  port: <%= ENV['MYSQL_PORT'] %>
  username: <%= ENV['MYSQL_USERNAME'] %>
  password: <%= ENV['MYSQL_PASSWORD'] %>

この状況だと $ rails dbconsole してもログインができないです。ユーザ名やホスト名が .env で指定したものになっていません。

5.2 で追加された credentials.yml.enc に書けば問題ありません。またもちろん、config/database.yml に直書きしても問題ありません。

備考

$ rails dbconsole というコマンドを経由した場合がダメであって、アプリ上では正常に動作します。

Powered by はてなブログ