Doiya’s blog

日々の進捗を書く雑記ブログ(メインはエンジニアやプログラミング関連)

マイグレでいつもと違うエラーが出たよ。

しょっちゅう、マイグレのエラーと遭遇するんですけど 今回は普段と少し違ったエラーが出たので、その解決に向けての軌跡をまとめます。

まず、bin/rails db:migrateをすると 以下のエラーが出た。

StandardError: An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: table "users" already exists: #この部分が大事!

usersテーブルあるよってことですね。

今回はrails dbconsoleでSQLiteをいじっていきます。

まずusersがあることを確認。

sqlite> .tables 
ar_internal_metadata  schema_migrations     users    #usersがあることを確認。

次にusersを削除する。

drop table "users"; #ダブルクォーテーションを忘れるとエラーになるので注意!

最後にusersが消えたことを確認

sqlite> .tables 
ar_internal_metadata  schema_migrations     

これでbin/rails db:migrateが出来るようになりました‼️

追記(2022/04/09) 以下のサイトを参考にして強制的にコメントアウトしてマイグレをdownさせた。

qiita.com

参考

db:migrateがうまくいかない場合の対処方法 - Qiita

Postgresでdropテーブルすると「syntax error」になる場合の対処方法 | kamotora