📦

migrationが実行されていないのにDBにテーブルが存在してmigrationが中断されてしまう時の対策

2022/10/26に公開

新機能追加に伴い、DBの既存テーブルに新たにカラムが追加されたので、dockerコマンドでmigrationを行おうとしたときに遭遇したエラー

SQLSTATE[42S01]: Base table or view already exists:[(以下省略)このあとに対象となるテーブル名がalready existsだよと書かれている]

「そのテーブル、すでに存在してますけど」と怒られているのは読めたが、そこからの解消に向けての動き方が理解できていなかったので、備忘として記録しようと思います。

対策

すでに作成されてしまっているテーブルを削除してから再度migration実行

今回はTablePlusというツールで行いました。
細かい削除方法は割愛。

環境にdockerが用いられているので、

docker-compose run --rm api php artisan migrate --path=xxxxxxx

コマンドを実行し、無事コマンド正常実行完了。
DBにも問題なくテーブルとカラムが追加され、解決。!

Discussion