diff --git a/packages/twenty-server/src/engine/twenty-orm/workspace-schema-manager/services/workspace-schema-table-manager.service.ts b/packages/twenty-server/src/engine/twenty-orm/workspace-schema-manager/services/workspace-schema-table-manager.service.ts index 690a35859a2..57bc0570dfa 100644 --- a/packages/twenty-server/src/engine/twenty-orm/workspace-schema-manager/services/workspace-schema-table-manager.service.ts +++ b/packages/twenty-server/src/engine/twenty-orm/workspace-schema-manager/services/workspace-schema-table-manager.service.ts @@ -49,6 +49,21 @@ export class WorkspaceSchemaTableManagerService { await queryRunner.query(sql); } + async tableExists({ + queryRunner, + schemaName, + tableName, + }: { + queryRunner: QueryRunner; + schemaName: string; + tableName: string; + }): Promise { + const sql = `SELECT to_regclass('${escapeIdentifier(schemaName)}.${escapeIdentifier(tableName)}') IS NOT NULL AS "exists"`; + const result = await queryRunner.query(sql); + + return result?.[0]?.exists === true; + } + async renameTable({ queryRunner, schemaName, diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-migration/workspace-migration-runner/action-handlers/field/services/delete-field-action-handler.service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-migration/workspace-migration-runner/action-handlers/field/services/delete-field-action-handler.service.ts index cf63b42c4c9..1d0d76a25b8 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-migration/workspace-migration-runner/action-handlers/field/services/delete-field-action-handler.service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-migration/workspace-migration-runner/action-handlers/field/services/delete-field-action-handler.service.ts @@ -79,6 +79,17 @@ export class DeleteFieldActionHandlerService extends WorkspaceMigrationRunnerAct objectMetadata: flatObjectMetadata, }); + const tableExists = + await this.workspaceSchemaManagerService.tableManager.tableExists({ + queryRunner, + schemaName, + tableName, + }); + + if (!tableExists) { + return; + } + const columnDefinitions = generateColumnDefinitions({ flatFieldMetadata, flatObjectMetadata,