Prismaのmigrateのエラーが出たときの対処法
2分目次
Prisma x Docker(MySQL)環境でのmigrate時にエラーが出てた
エラーメッセージ
Error: P3006
Migration `20220214130113_add_category` failed to apply cleanly to the shadow database.
Error code: P3018
Error:
A migration failed to apply. New migrations cannot be applied before the error is recovered from. Read more about how to resolve migration issues in a production database: https://pris.ly/d/migrate-resolve
Migration name: 20220214130113_add_category
Database error code: 1146
Database error:
Table 'prisma_migrate_shadow_db_30e59325-2c82-44c6-b1fa-3e4c87944ad4.sample' doesn't exist
Please check the query number 1 from the migration file.
Error: The shadow database you configured appears to be the same as the main database. Please specify another shadow database.
0: sql_migration_connector::flavour::mysql::sql_schema_from_migration_history
at migration-engine/connectors/sql-migration-connector/src/flavour/mysql.rs:406
1: migration_core::state::DevDiagnostic
at migration-engine/core/src/state.rs:178
対処法
Rollback一択
個人的な感覚だけどPrismaはモデルちょこちょこいじってその都度migrateするよりも多少大雑把にやったほうがmigrate周りのエラー起こらない気がする。
SQLあまり読めないので詳しい原因わからないけどエラー起こるような修正内容ではないのに、なぜか一個前のmigrateが原因となってエラーが起こってしまう。
とりあえず上のようなP3006
, P3018
系のエラーはmigrateファイルを削除すると直りがち。