From f54bc0c047a99a0b44f3e48015b67110c643e263 Mon Sep 17 00:00:00 2001 From: fengmk2 Date: Wed, 4 Jun 2025 14:45:42 +0800 Subject: [PATCH] chore(server): auto roll back failed migrations (#12697) --- .../server/scripts/self-host-predeploy.js | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/packages/backend/server/scripts/self-host-predeploy.js b/packages/backend/server/scripts/self-host-predeploy.js index 413264245..cd3ec9c34 100644 --- a/packages/backend/server/scripts/self-host-predeploy.js +++ b/packages/backend/server/scripts/self-host-predeploy.js @@ -47,5 +47,33 @@ function runPredeployScript() { }); } +function fixFailedMigrations() { + console.log('fixing failed migrations.'); + const maybeFailedMigrations = [ + '20250521083048_fix_workspace_embedding_chunk_primary_key', + ]; + for (const migration of maybeFailedMigrations) { + try { + execSync(`yarn prisma migrate resolve --rolled-back ${migration}`, { + encoding: 'utf-8', + env: process.env, + stdio: 'pipe', + }); + console.log(`migration [${migration}] has been rolled back.`); + } catch (err) { + if ( + err.message.includes( + 'cannot be rolled back because it is not in a failed state' + ) + ) { + // migration has been rolled back, skip it + continue; + } + throw err; + } + } +} + prepare(); +fixFailedMigrations(); runPredeployScript();