Rails のデータベース名が変わっていたときのローカルでの対応方法
Rails のデータベース名が変わっていたときのローカルでの対応方法
いろいろあってデータベースの名前が変わっていたときに対応した時のメモです。
基本的に、データベースの名前を変えるべきではないです。
こういう作業が発生したり、予期しないエラーが発生しそうなため。
ActiveRecord::NoDatabaseError
以前使っていたデータベース名を before_dev
、変更したあとのデータベース名を after_dev
とします。
今まで通り、$ bundle exec rails s
で起動すると下記のようなエラーが出るかと思います。
ActiveRecord::NoDatabaseError
Unknown database 'after_dev'
対応
# データベース削除(削除前にbefore_devのデータがなければ、SQLを吐き出しておく)
$ bundle exec rails db:drop DISABLE_DATABASE_ENVIRONMENT_CHECK=1
# データベース作成
$ bundle exec rails db:create
# before_dev.sql のデータを用意して、SQLファイルから直接データを流し込む
$ mysql -u ${USERNAME} after_dev < ../Downloads/before.sql
# migrationステータス確認
$ bundle exec rails db:migrate:status
# migration
$ bundle exec rails db:migrate RAILS_ENV=development
# サーバー起動
$ bundle exec rails s