hene

hene.dev

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

関連記事