はじめに
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:の記述を消していました。。。
今後はファイル編集の際は大事な記述を消さないように気をつけます
ではまた〜