SQLite3::SQLException: table "users" already exists エラー

・なぜ発生したか、経緯

 sorceryを利用して、ログイン機能を追加しようとした。'rails g sorcery:install'を使用した後に、'rails db:migrate' を実行し、userテーブルを作成した。

その後、必要なカラムがないことに気づいたため、'rails destroy modle user'を実行し、必要なカラムを入れ、db:migrateし直す。そこで

Caused by:
SQLite3::SQLException: table "users" already exists

上記のエラーが出た。

・原因

マイグレーションファイルなどを削除しても、dbには残っているため。

・解決方法

(ターミナルにて)

rails db

sqlite> .tables
(テーブル一覧)

ar_internal_metadata  schema_migrations     users  
(不要なusersテーブルを確認)
             
sqlite> drop table users;
(usersテーブル削除)

ctrl + d で抜ける

・参考

Rails DBエラー】SQLite3::SQLException: table "✖︎✖︎✖︎" already existsが出るときの解決

この記事が気に入ったらサポートをしてみませんか?