🐷
Prismaマイグレーションのトラブル
事象
あるテーブルにて、あるカラムを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