🐷

Prismaマイグレーションのトラブル

2023/04/04に公開

事象

あるテーブルにて、あるカラムをNOT NULL制約に変更した。
しかし、デプロイで以下のエラーが出た

Error: P3009 migrate found failed migrations in the target database, new migrations will not be applied. ...

The ****** migration started at ...
というエラーが発生した。

どうやら既存DBのテーブルで、不整合データが存在したのが原因だった。
DBクライアント(DBever)から不整合データを削除して再度デプロイを試みたが再び失敗した。

対処

デプロイでコケた際、テーブル_prisma_migrationsにマイグレーションの履歴が書き込まれていた。
それが原因で、再度デプロイ時にマイグレーションが失敗していた模様。
したがって、マイグレーションの履歴を削除する。

DELETE FROM _prisma_migrations where migration_name='******';

これで再実行でコケるのが解消した。

Discussion