From 0b7024c94a421215fe1b523b3191140f662e0f53 Mon Sep 17 00:00:00 2001 From: Thomas Trompette Date: Tue, 22 Apr 2025 16:07:29 +0200 Subject: [PATCH] Perform batch update on workflow runs (#11680) Command times out on workflow versions with too many runs. Performing batch update instead --- .../0-52-backfill-workflow-next-step-ids.command.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/twenty-server/src/database/commands/upgrade-version-command/0-52/0-52-backfill-workflow-next-step-ids.command.ts b/packages/twenty-server/src/database/commands/upgrade-version-command/0-52/0-52-backfill-workflow-next-step-ids.command.ts index 25f088cb9..9d9205188 100644 --- a/packages/twenty-server/src/database/commands/upgrade-version-command/0-52/0-52-backfill-workflow-next-step-ids.command.ts +++ b/packages/twenty-server/src/database/commands/upgrade-version-command/0-52/0-52-backfill-workflow-next-step-ids.command.ts @@ -11,6 +11,7 @@ import { Workspace } from 'src/engine/core-modules/workspace/workspace.entity'; import { TwentyORMGlobalManager } from 'src/engine/twenty-orm/twenty-orm-global.manager'; import { WorkflowRunWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow-run.workspace-entity'; import { WorkflowVersionWorkspaceEntity } from 'src/modules/workflow/common/standard-objects/workflow-version.workspace-entity'; +import { WorkflowTrigger } from 'src/modules/workflow/workflow-trigger/types/workflow-trigger.type'; @Command({ name: 'upgrade:0-52:backfill-workflow-next-step-ids', @@ -76,6 +77,8 @@ export class BackfillWorkflowNextStepIdsCommand extends ActiveOrSuspendedWorkspa }, }); + const workflowRunsToUpdate: WorkflowRunWorkspaceEntity[] = []; + for (const workflowRun of workflowRuns) { const flow = workflowRun.output?.flow; @@ -92,18 +95,22 @@ export class BackfillWorkflowNextStepIdsCommand extends ActiveOrSuspendedWorkspa }; }); - await workflowRunRepository.save({ + const updatedWorkflowRun: WorkflowRunWorkspaceEntity = { ...workflowRun, output: { ...workflowRun.output, flow: { - ...workflowRun.output?.flow, + trigger: workflowRun.output?.flow?.trigger as WorkflowTrigger, steps: updatedFlow, }, }, - }); + }; + + workflowRunsToUpdate.push(updatedWorkflowRun); } + await workflowRunRepository.save(workflowRunsToUpdate); + await workflowVersionRepository.save({ ...workflowVersion, steps: updatedSteps,