From baa08e9ec92925a676d0670698eb691ab031bd69 Mon Sep 17 00:00:00 2001 From: paul Date: Fri, 25 Jul 2025 13:34:02 +0200 Subject: [PATCH] Fix duplicate key error in migration marking - Added check in markMigrationAsApplied to prevent duplicate inserts - Now checks if migration is already marked before inserting - Prevents 'duplicate key value violates unique constraint' error The error occurred when detectExistingSchema() marked a migration as applied, then the migration runner caught a 'schema exists' error and tried to mark it as applied again. --- backend/migrations/run-migrations-safe.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/backend/migrations/run-migrations-safe.js b/backend/migrations/run-migrations-safe.js index 51acda3..9933c7a 100644 --- a/backend/migrations/run-migrations-safe.js +++ b/backend/migrations/run-migrations-safe.js @@ -27,8 +27,12 @@ async function isMigrationApplied(filename) { // Mark migration as applied without running it (for existing schema) async function markMigrationAsApplied(filename) { - await db('migrations').insert({ filename }); - console.log(`Marked migration ${filename} as applied`); + // Check if already marked to avoid duplicate key error + const isApplied = await isMigrationApplied(filename); + if (!isApplied) { + await db('migrations').insert({ filename }); + console.log(`Marked migration ${filename} as applied`); + } } // Detect existing schema and mark migrations as applied