rake db:migrate で未実行のマイグレーションファイルをテーブルに反映させようとした所、以下のようなエラー文が発生。
Caused by:
ActiveRecord::StatementInvalid: Mysql2::Error: Table 'example' already exists: CREATE TABLE `tweets` (`id` bigint NOT NULL AUTO_INCREMENT PRIMARY KEY, `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL)
その為、rake db:dropで一度データベースを消そうとするとまたもやエラーが発生。ただ、エラー文をよく読んでみると以下のようなメッセージが出力されていた。
Environment data not found in the schema. To resolve this issue,run:
bin/rails db:environment:set RAILS_ENV=development
なので、bin/rails db:environment:set RAILS_ENV=development
を実行してから再度rake db:drop を実行。するとデータDropped database と無事表示された。
その後、 rake db:migrate を実行すると
ActiveRecord::NoDatabaseError: Unknown database
とのエラーが発生(まあデータベースをドロップしたんだから当然といえば当然)
その為、本来であればここで rake db:create とすれば良かったと思うのだが、ここでなぜかrake db:resetと入力。
ただこちらでも
Database ‘example_development' does not exist
Database 'example_test' does not exist
と表示された後
Created database 'example_development'
Created database 'example_test'
と表示され、なぜかデータベースを生成してくれた。
その後、rake db:migrate を実行すると無事マイグレーションファイルを実行できた。
なんだかあまりスッキリとしないが、とりあえず解決できてよかった。