From d7533bef8c3830c0f1faa25c199f80aee9e58b25 Mon Sep 17 00:00:00 2001 From: Paul Rastoin <45004772+prastoin@users.noreply.github.com> Date: Fri, 12 Dec 2025 16:02:23 +0100 Subject: [PATCH] fix(server): non blocking CleanEmptyStringNullInTextFieldsCommand error (#16529) # Introduction Getting query timeout on prod upgrade for workspace that has huge timeline activity table --- ...mpty-string-null-in-text-fields.command.ts | 41 +++++++++++-------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/packages/twenty-server/src/database/commands/upgrade-version-command/1-13/1-13-clean-empty-string-null-in-text-fields.command.ts b/packages/twenty-server/src/database/commands/upgrade-version-command/1-13/1-13-clean-empty-string-null-in-text-fields.command.ts index e5ba84922be..a3185411512 100644 --- a/packages/twenty-server/src/database/commands/upgrade-version-command/1-13/1-13-clean-empty-string-null-in-text-fields.command.ts +++ b/packages/twenty-server/src/database/commands/upgrade-version-command/1-13/1-13-clean-empty-string-null-in-text-fields.command.ts @@ -85,26 +85,33 @@ export class CleanEmptyStringNullInTextFieldsCommand extends ActiveOrSuspendedWo }); for (const objectMetadataItem of objectMetadataItems) { - const tableName = computeObjectTargetTable(objectMetadataItem); + try { + const tableName = computeObjectTargetTable(objectMetadataItem); - if (!objectMetadataItem.isCustom) { - await this.cleanUpEmptyStringDefaultsInTextFieldsInStandardObjects( - objectMetadataItem, - tableName, - schemaName, - dataSource, - isDryRun, - ); - } + if (!objectMetadataItem.isCustom) { + await this.cleanUpEmptyStringDefaultsInTextFieldsInStandardObjects( + objectMetadataItem, + tableName, + schemaName, + dataSource, + isDryRun, + ); + } - if (objectMetadataItem.isCustom) { - await this.cleanUpEmptyStringDefaultsAndSetNullableInNameFieldInCustomObjects( - objectMetadataItem, - tableName, - schemaName, - dataSource, - isDryRun, + if (objectMetadataItem.isCustom) { + await this.cleanUpEmptyStringDefaultsAndSetNullableInNameFieldInCustomObjects( + objectMetadataItem, + tableName, + schemaName, + dataSource, + isDryRun, + ); + } + } catch (error) { + this.logger.error( + `Could not cleanup ${objectMetadataItem.isCustom ? 'custom' : 'standard'} object ${objectMetadataItem.nameSingular} records for workspace ${workspaceId}`, ); + this.logger.error(error); } } }