From 120cec9885c760897ecea02b45fba3945c338b3a Mon Sep 17 00:00:00 2001 From: Guillim Date: Mon, 3 Nov 2025 12:38:14 +0100 Subject: [PATCH] fix migration command - workflow runs (#15540) fix migration command to enable the id addition in the fieldmetadata options of workflow runs Isues was on the workfluw rin (xurrently in produciton) if we filter by status: clicking "Stopped" also selects "Stoppping" automatically. Screenshot 2025-11-03 at 12 26 40 --- ...-add-workflow-run-stop-statuses.command.ts | 69 ++++++++++++------- 1 file changed, 45 insertions(+), 24 deletions(-) diff --git a/packages/twenty-server/src/database/commands/upgrade-version-command/1-10/1-10-add-workflow-run-stop-statuses.command.ts b/packages/twenty-server/src/database/commands/upgrade-version-command/1-10/1-10-add-workflow-run-stop-statuses.command.ts index 4408ce87d7..b9cb287640 100644 --- a/packages/twenty-server/src/database/commands/upgrade-version-command/1-10/1-10-add-workflow-run-stop-statuses.command.ts +++ b/packages/twenty-server/src/database/commands/upgrade-version-command/1-10/1-10-add-workflow-run-stop-statuses.command.ts @@ -2,12 +2,14 @@ import { InjectDataSource, InjectRepository } from '@nestjs/typeorm'; import { Command } from 'nest-commander'; import { DataSource, Repository } from 'typeorm'; +import { v4 } from 'uuid'; import { ActiveOrSuspendedWorkspacesMigrationCommandRunner, type RunOnWorkspaceArgs, } from 'src/database/commands/command-runners/active-or-suspended-workspaces-migration.command-runner'; import { WorkspaceEntity } from 'src/engine/core-modules/workspace/workspace.entity'; +import { FieldMetadataComplexOption } from 'src/engine/metadata-modules/field-metadata/dtos/options.input'; import { FieldMetadataEntity } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity'; import { TwentyORMGlobalManager } from 'src/engine/twenty-orm/twenty-orm-global.manager'; import { getWorkspaceSchemaName } from 'src/engine/workspace-datasource/utils/get-workspace-schema-name.util'; @@ -58,6 +60,48 @@ export class AddWorkflowRunStopStatusesCommand extends ActiveOrSuspendedWorkspac const workflowRunStatusFieldMetadataOptions = workflowRunStatusFieldMetadata.options; + if (options.dryRun) { + this.logger.log( + `Would add stopped and stopping statuses to workflow run status field metadata for workspace ${workspaceId}`, + ); + } else { + const workflowRunStatusFieldMetadataOptionsSpecificStoppingAndStoppedTreatment = + workflowRunStatusFieldMetadataOptions?.filter( + (option) => + option.value !== WorkflowRunStatus.STOPPED && + option.value !== WorkflowRunStatus.STOPPING, + ) as FieldMetadataComplexOption[]; + + workflowRunStatusFieldMetadataOptionsSpecificStoppingAndStoppedTreatment?.push( + { + id: v4(), + value: WorkflowRunStatus.STOPPING, + label: 'Stopping', + position: 5, + color: 'orange', + }, + ); + workflowRunStatusFieldMetadataOptionsSpecificStoppingAndStoppedTreatment?.push( + { + id: v4(), + value: WorkflowRunStatus.STOPPED, + label: 'Stopped', + position: 6, + color: 'gray', + }, + ); + + await this.fieldMetadataRepository.save({ + ...workflowRunStatusFieldMetadata, + options: + workflowRunStatusFieldMetadataOptionsSpecificStoppingAndStoppedTreatment, + }); + + this.logger.log( + `Stopped and stopping statuses added to workflow run status field metadata for workspace ${workspaceId}`, + ); + } + if ( workflowRunStatusFieldMetadataOptions?.some( (option) => @@ -66,33 +110,10 @@ export class AddWorkflowRunStopStatusesCommand extends ActiveOrSuspendedWorkspac ) ) { this.logger.log( - `Workflow run status field metadata options already contain stopped and stopping statuses for workspace ${workspaceId}`, + `We do not want to re-run the workspace command for those already added`, ); return; - } else if (options.dryRun) { - this.logger.log( - `Would add stopped and stopping statuses to workflow run status field metadata for workspace ${workspaceId}`, - ); - } else { - workflowRunStatusFieldMetadataOptions?.push({ - value: WorkflowRunStatus.STOPPING, - label: 'Stopping', - position: 5, - color: 'orange', - }); - workflowRunStatusFieldMetadataOptions?.push({ - value: WorkflowRunStatus.STOPPED, - label: 'Stopped', - position: 6, - color: 'gray', - }); - - await this.fieldMetadataRepository.save(workflowRunStatusFieldMetadata); - - this.logger.log( - `Stopped and stopping statuses added to workflow run status field metadata for workspace ${workspaceId}`, - ); } const schemaName = getWorkspaceSchemaName(workspaceId);