LoginSignup
1
0

More than 1 year has passed since last update.

database.ymlを編集したらrails db:create RAILS_ENV=productionでエラーが出た話

Posted at

はじめに

1月〜プログラミングスクールで学習しています。
これから平日は~3/25まで毎日何かしらアウトプットのため投稿を続ける予定です。
今回はEC2内でデータベースを作成する際にdatabase.ymlを編集し、rails db:create RAILS_ENV=productionコマンドを実行した時に出たエラーについて書きます。

経緯

本番環境でRailsを起動させたく、本番環境のmysqlの設定に合わせるため、ローカルのdatabase.ymlを以下のように編集しました。(頭の中では。。。)

production:
  <<: *default
  database: diet_app_production
  username: root
  password: <%= ENV['DATABASE_PASSWORD'] %>
  socket: /var/lib/mysql/mysql.sock

その後、EC2にssh接続し、”rails db:create RAILS_ENV=production”を実行すると下記エラーとなりました。
ここでエラーをよく読んでdatabase.ymlの中身をしっかり確認すればすぐにミスに気づけたものの、しばらく分からずググったりしていました。。。

ターミナル
[ec2-user@ip-172-31-1-171 diet-app]$ rails db:create RAILS_ENV=production
Mysql2::Error: Incorrect database name ''
Couldn't create '' database. Please check your configuration.
rails aborted!
ActiveRecord::StatementInvalid: Mysql2::Error: Incorrect database name ''
/var/www/diet-app/bin/rails:9:in `<top (required)>'
/var/www/diet-app/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'

Caused by:
Mysql2::Error: Incorrect database name ''
/var/www/diet-app/bin/rails:9:in `<top (required)>'
/var/www/diet-app/bin/spring:15:in `<top (required)>'
bin/rails:3:in `load'
bin/rails:3:in `<main>'
Tasks: TOP => db:create
(See full trace by running task with --trace)

解決

本当にしょうもない話だったのですが、username:等を追記した際にdatabase:の記述を消していました。。。
e95bd4ac02a489af9ec8076705451725.png

今後はファイル編集の際は大事な記述を消さないように気をつけます:innocent:
ではまた〜:runner:

1
0
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
1
0