diff --git a/packages/twenty-server/src/database/typeorm/core/migrations/common/1763977334519-workspace-custom-application-id-non-nullable.ts b/packages/twenty-server/src/database/typeorm/core/migrations/common/1763977334519-workspace-custom-application-id-non-nullable.ts index 0090fa851e..dc58be2b8c 100644 --- a/packages/twenty-server/src/database/typeorm/core/migrations/common/1763977334519-workspace-custom-application-id-non-nullable.ts +++ b/packages/twenty-server/src/database/typeorm/core/migrations/common/1763977334519-workspace-custom-application-id-non-nullable.ts @@ -6,7 +6,11 @@ export class WorkspaceCustomApplicationIdNonNullable1763977334519 name = 'WorkspaceCustomApplicationIdNonNullable1763977334519'; public async up(queryRunner: QueryRunner): Promise { + const savepointName = 'sp_workspace_custom_application_id_non_nullable'; + try { + await queryRunner.query(`SAVEPOINT ${savepointName}`); + await queryRunner.query( `ALTER TABLE "core"."workspace" DROP CONSTRAINT "FK_3b1acb13a5dac9956d1a4b32755"`, ); @@ -16,7 +20,21 @@ export class WorkspaceCustomApplicationIdNonNullable1763977334519 await queryRunner.query( `ALTER TABLE "core"."workspace" ADD CONSTRAINT "FK_3b1acb13a5dac9956d1a4b32755" FOREIGN KEY ("workspaceCustomApplicationId") REFERENCES "core"."application"("id") ON DELETE RESTRICT ON UPDATE NO ACTION`, ); + + await queryRunner.query(`RELEASE SAVEPOINT ${savepointName}`); } catch (e) { + try { + await queryRunner.query(`ROLLBACK TO SAVEPOINT ${savepointName}`); + await queryRunner.query(`RELEASE SAVEPOINT ${savepointName}`); + } catch (rollbackError) { + // eslint-disable-next-line no-console + console.error( + 'Failed to rollback to savepoint in WorkspaceCustomApplicationIdNonNullable1763977334519', + rollbackError, + ); + throw rollbackError; + } + // eslint-disable-next-line no-console console.error( 'Swallowing WorkspaceCustomApplicationIdNonNullable1763977334519 error',