エラー内容
ユーザー管理機能を実装していた時のこと。
テーブルを作成後に、rails db:migrate
実行時に
Mysql2::Error: Table 'users' already exists
とエラー表示される。
仮説1
調べたところ↓
https://qiita.com/TAKE1219/items/fbc9578226771427fcdd
usersテーブルは既に存在しているよ!とエラーが出ている様子。
また、原因としてdatabase.ymlの
encoding: utf8mb4
を encoding: utf8
へ修正する必要がある。
修正して再度
rails db:migrate
↓
Mysql2::Error: Table 'users' already exists
の表示・・・
rails db:migrate:status
でmigrationファイルの確認。
Status Migration ID Migration Name
-------------------------------------------
down 000000000000 Devise create users
特に問題なさそう。。。
SQL文でテーブル内を確認するも、特に問題も無さそう・・・
仮説2
色々ネットを物色していたところ
↓この記事を発見
https://qiita.com/k0kubun/items/491a9d9f2745335566e3
schema.rb
ファイルを確認。
何故か、前回作成していたアプリのデータベースが記述されている。
schema.rb
ファイル内の記述を削除して、
rails db:migrate
すると
Status Migration ID Migration Name
-------------------------------------------------
up 000000000000 Devise create users
無事、migrate
出来ました〜〜〜〜〜♪
まとめ
今回は、schema.rb
ファイルが原因でした。
なぜ、前回のアプリ内容が記述されていたかは謎なので
分かるかた居れば教えて下さい。。。。