エラー内容
ユーザー管理機能を実装していた時のこと。
テーブルを作成後に、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ファイルが原因でした。
なぜ、前回のアプリ内容が記述されていたかは謎なので
分かるかた居れば教えて下さい。。。。