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ファイルを削除すると直りがち。

参考: Resolve migration issues in production databases

  • SNSでシェアしよう
  • Twitterでシェア
  • FaceBookでシェア
  • Lineでシェア
  • 記事タイトルとURLをコピー
トップへ戻るボタン

\ HOME /

トップへ戻る