From 84078f33ce9b3d223f08ad135d28bce7cc76ea95 Mon Sep 17 00:00:00 2001 From: Diego Imbert Date: Wed, 17 Jun 2026 19:27:17 +0200 Subject: [PATCH] fix: revert created migration if create-and-run fails to run --- .../NewDataTableMigrationModal.svelte | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/frontend/src/lib/components/workspaceSettings/NewDataTableMigrationModal.svelte b/frontend/src/lib/components/workspaceSettings/NewDataTableMigrationModal.svelte index bb64fba4f3..3ee5c593b2 100644 --- a/frontend/src/lib/components/workspaceSettings/NewDataTableMigrationModal.svelte +++ b/frontend/src/lib/components/workspaceSettings/NewDataTableMigrationModal.svelte @@ -63,11 +63,26 @@ } }) if (run) { - await WorkspaceService.runDatatableMigrations({ - workspace, - datatableName: datatable, - upTo: created.timestamp - }) + try { + await WorkspaceService.runDatatableMigrations({ + workspace, + datatableName: datatable, + only: created.timestamp + }) + } catch (runErr: any) { + // The migration was created but failed to run; undo the insertion so + // the user can fix the SQL and retry from a clean state. + await WorkspaceService.deleteDatatableMigration({ + workspace, + datatableName: datatable, + timestamp: created.timestamp + }).catch(() => {}) + sendUserToast( + `Migration failed to run and was reverted: ${runErr?.body ?? runErr?.message ?? runErr}`, + true + ) + return + } } isOpen = false sendUserToast(run ? 'Migration created and run' : 'Migration created')