[CHORE] Enable workspace version validation on upgrade for next release (#11211)

# Introduction
- Activate workspace version validation on upgrade command
- Update upgrade command to manager next release starting from `0.44.0`
This commit is contained in:
Paul Rastoin
2025-03-26 21:47:39 +01:00
committed by GitHub
parent 5bd10d40cb
commit 870069f682
3 changed files with 6 additions and 18 deletions

View File

@ -2,8 +2,8 @@ import { Test, TestingModule } from '@nestjs/testing';
import { getRepositoryToken } from '@nestjs/typeorm'; import { getRepositoryToken } from '@nestjs/typeorm';
import { SemVer } from 'semver'; import { SemVer } from 'semver';
import { Repository } from 'typeorm';
import { EachTestingContext } from 'twenty-shared/testing'; import { EachTestingContext } from 'twenty-shared/testing';
import { Repository } from 'typeorm';
import { UpgradeCommandRunner } from 'src/database/commands/command-runners/upgrade.command-runner'; import { UpgradeCommandRunner } from 'src/database/commands/command-runners/upgrade.command-runner';
import { EnvironmentVariables } from 'src/engine/core-modules/environment/environment-variables'; import { EnvironmentVariables } from 'src/engine/core-modules/environment/environment-variables';
@ -14,7 +14,6 @@ import { SyncWorkspaceMetadataCommand } from 'src/engine/workspace-manager/works
class TestUpgradeCommandRunnerV1 extends UpgradeCommandRunner { class TestUpgradeCommandRunnerV1 extends UpgradeCommandRunner {
fromWorkspaceVersion = new SemVer('1.0.0'); fromWorkspaceVersion = new SemVer('1.0.0');
VALIDATE_WORKSPACE_VERSION_FEATURE_FLAG = true as const;
public override async runBeforeSyncMetadata(): Promise<void> { public override async runBeforeSyncMetadata(): Promise<void> {
return; return;
@ -27,7 +26,6 @@ class TestUpgradeCommandRunnerV1 extends UpgradeCommandRunner {
class InvalidVersionUpgradeCommandRunner extends UpgradeCommandRunner { class InvalidVersionUpgradeCommandRunner extends UpgradeCommandRunner {
fromWorkspaceVersion = new SemVer('invalid'); fromWorkspaceVersion = new SemVer('invalid');
VALIDATE_WORKSPACE_VERSION_FEATURE_FLAG = true as const;
protected async runBeforeSyncMetadata(): Promise<void> { protected async runBeforeSyncMetadata(): Promise<void> {
return; return;
@ -40,7 +38,6 @@ class InvalidVersionUpgradeCommandRunner extends UpgradeCommandRunner {
class TestUpgradeCommandRunnerV2 extends UpgradeCommandRunner { class TestUpgradeCommandRunnerV2 extends UpgradeCommandRunner {
fromWorkspaceVersion = new SemVer('2.0.0'); fromWorkspaceVersion = new SemVer('2.0.0');
VALIDATE_WORKSPACE_VERSION_FEATURE_FLAG = true as const;
protected async runBeforeSyncMetadata(): Promise<void> { protected async runBeforeSyncMetadata(): Promise<void> {
return; return;

View File

@ -2,8 +2,8 @@ import { InjectRepository } from '@nestjs/typeorm';
import chalk from 'chalk'; import chalk from 'chalk';
import { SemVer } from 'semver'; import { SemVer } from 'semver';
import { Repository } from 'typeorm';
import { isDefined } from 'twenty-shared/utils'; import { isDefined } from 'twenty-shared/utils';
import { Repository } from 'typeorm';
import { import {
ActiveOrSuspendedWorkspacesMigrationCommandRunner, ActiveOrSuspendedWorkspacesMigrationCommandRunner,
@ -109,15 +109,6 @@ export abstract class UpgradeCommandRunner extends ActiveOrSuspendedWorkspacesMi
private async retrieveWorkspaceVersionAndCompareToWorkspaceFromVersion( private async retrieveWorkspaceVersionAndCompareToWorkspaceFromVersion(
workspaceId: string, workspaceId: string,
): Promise<CompareVersionMajorAndMinorReturnType> { ): Promise<CompareVersionMajorAndMinorReturnType> {
// TODO remove after first release has been done using workspace_version
if (!isDefined(this.VALIDATE_WORKSPACE_VERSION_FEATURE_FLAG)) {
this.logger.warn(
'VALIDATE_WORKSPACE_VERSION_FEATURE_FLAG set to true ignoring workspace versions validation step',
);
return 'equal';
}
const workspace = await this.workspaceRepository.findOneByOrFail({ const workspace = await this.workspaceRepository.findOneByOrFail({
id: workspaceId, id: workspaceId,
}); });

View File

@ -31,7 +31,7 @@ type VersionCommands = {
description: 'Upgrade workspaces to the latest version', description: 'Upgrade workspaces to the latest version',
}) })
export class UpgradeCommand extends UpgradeCommandRunner { export class UpgradeCommand extends UpgradeCommandRunner {
fromWorkspaceVersion = new SemVer('0.43.0'); fromWorkspaceVersion = new SemVer('0.44.0');
private commands: VersionCommands; private commands: VersionCommands;
constructor( constructor(
@ -74,19 +74,19 @@ export class UpgradeCommand extends UpgradeCommandRunner {
this.addTasksAssignedToMeViewCommand, this.addTasksAssignedToMeViewCommand,
], ],
}; };
const commands_044: VersionCommands = { const _commands_044: VersionCommands = {
beforeSyncMetadata: [ beforeSyncMetadata: [
this.initializePermissionsCommand, this.initializePermissionsCommand,
this.updateViewAggregateOperationsCommand, this.updateViewAggregateOperationsCommand,
], ],
afterSyncMetadata: [], afterSyncMetadata: [],
}; };
const _commands_050: VersionCommands = { const commands_050: VersionCommands = {
beforeSyncMetadata: [this.migrateRelationsToFieldMetadataCommand], beforeSyncMetadata: [this.migrateRelationsToFieldMetadataCommand],
afterSyncMetadata: [], afterSyncMetadata: [],
}; };
this.commands = commands_044; this.commands = commands_050;
} }
override async runBeforeSyncMetadata(args: RunOnWorkspaceArgs) { override async runBeforeSyncMetadata(args: RunOnWorkspaceArgs) {