diff --git a/packages/twenty-server/src/database/typeorm/core/migrations/common/1736861823893-updateWorkspaceStatusEnum.ts b/packages/twenty-server/src/database/typeorm/core/migrations/common/1736861823893-updateWorkspaceStatusEnum.ts new file mode 100644 index 000000000..503410ab9 --- /dev/null +++ b/packages/twenty-server/src/database/typeorm/core/migrations/common/1736861823893-updateWorkspaceStatusEnum.ts @@ -0,0 +1,49 @@ +import { MigrationInterface, QueryRunner } from 'typeorm'; + +export class UpdateWorkspaceStatusEnum1736861823893 + implements MigrationInterface +{ + name = 'UpdateWorkspaceStatusEnum1736861823893'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TYPE "core"."workspace_activationstatus_enum" RENAME TO "workspace_activationstatus_enum_old"`, + ); + await queryRunner.query( + `CREATE TYPE "core"."workspace_activationStatus_enum" AS ENUM('ONGOING_CREATION', 'PENDING_CREATION', 'ACTIVE', 'INACTIVE', 'SUSPENDED')`, + ); + await queryRunner.query( + `ALTER TABLE "core"."workspace" ALTER COLUMN "activationStatus" DROP DEFAULT`, + ); + await queryRunner.query( + `ALTER TABLE "core"."workspace" ALTER COLUMN "activationStatus" TYPE "core"."workspace_activationStatus_enum" USING "activationStatus"::"text"::"core"."workspace_activationStatus_enum"`, + ); + await queryRunner.query( + `ALTER TABLE "core"."workspace" ALTER COLUMN "activationStatus" SET DEFAULT 'INACTIVE'`, + ); + await queryRunner.query( + `DROP TYPE "core"."workspace_activationstatus_enum_old"`, + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `CREATE TYPE "core"."workspace_activationstatus_enum_old" AS ENUM('ACTIVE', 'INACTIVE', 'ONGOING_CREATION', 'PENDING_CREATION')`, + ); + await queryRunner.query( + `ALTER TABLE "core"."workspace" ALTER COLUMN "activationStatus" DROP DEFAULT`, + ); + await queryRunner.query( + `ALTER TABLE "core"."workspace" ALTER COLUMN "activationStatus" TYPE "core"."workspace_activationstatus_enum_old" USING "activationStatus"::"text"::"core"."workspace_activationstatus_enum_old"`, + ); + await queryRunner.query( + `ALTER TABLE "core"."workspace" ALTER COLUMN "activationStatus" SET DEFAULT 'INACTIVE'`, + ); + await queryRunner.query( + `DROP TYPE "core"."workspace_activationStatus_enum"`, + ); + await queryRunner.query( + `ALTER TYPE "core"."workspace_activationstatus_enum_old" RENAME TO "workspace_activationstatus_enum"`, + ); + } +} diff --git a/packages/twenty-server/src/engine/core-modules/workspace/workspace.entity.ts b/packages/twenty-server/src/engine/core-modules/workspace/workspace.entity.ts index d2fc348bc..89b776046 100644 --- a/packages/twenty-server/src/engine/core-modules/workspace/workspace.entity.ts +++ b/packages/twenty-server/src/engine/core-modules/workspace/workspace.entity.ts @@ -27,6 +27,7 @@ export enum WorkspaceActivationStatus { PENDING_CREATION = 'PENDING_CREATION', ACTIVE = 'ACTIVE', INACTIVE = 'INACTIVE', + SUSPENDED = 'SUSPENDED', } registerEnumType(WorkspaceActivationStatus, { @@ -109,6 +110,7 @@ export class Workspace { @Field(() => WorkspaceActivationStatus) @Column({ type: 'enum', + enumName: 'workspace_activationStatus_enum', enum: WorkspaceActivationStatus, default: WorkspaceActivationStatus.INACTIVE, })