From 5e3cf7cd2b5e8d3695346fdb31c99933d0f4d73c Mon Sep 17 00:00:00 2001 From: Paul Rastoin <45004772+prastoin@users.noreply.github.com> Date: Thu, 9 Apr 2026 15:53:21 +0200 Subject: [PATCH] Prepare 1.21 (#19501) Migrating some 1.21 migrations to the new pattern so it writes in the history When release in prod we will ahve to manually inject them as they have already been run It's mainly for self host so when releasing the 1.22 we will be able to rely on the 1.21 history --- ...view-field-group-id-index-on-view-field.ts | 21 +++++++++++++++++++ ...9548-migrate-messaging-calendar-to-core.ts | 21 +++++++++++++++++++ ...200000000-add-email-thread-widget-type.ts} | 12 ++++++----- .../instance-commands.constant.ts | 10 ++++++++- ...view-field-group-id-index-on-view-field.ts | 19 ----------------- ...9548-migrate-messaging-calendar-to-core.ts | 19 ----------------- 6 files changed, 58 insertions(+), 44 deletions(-) create mode 100644 packages/twenty-server/src/database/commands/upgrade-version-command/1-21/1-21-instance-command-fast-1775129420309-add-view-field-group-id-index-on-view-field.ts create mode 100644 packages/twenty-server/src/database/commands/upgrade-version-command/1-21/1-21-instance-command-fast-1775165049548-migrate-messaging-calendar-to-core.ts rename packages/twenty-server/src/database/{typeorm/core/migrations/common/1775200000000-addEmailThreadWidgetType.ts => commands/upgrade-version-command/1-21/1-21-instance-command-fast-1775200000000-add-email-thread-widget-type.ts} (83%) delete mode 100644 packages/twenty-server/src/database/typeorm/core/migrations/common/1775129420309-add-view-field-group-id-index-on-view-field.ts delete mode 100644 packages/twenty-server/src/database/typeorm/core/migrations/common/1775165049548-migrate-messaging-calendar-to-core.ts diff --git a/packages/twenty-server/src/database/commands/upgrade-version-command/1-21/1-21-instance-command-fast-1775129420309-add-view-field-group-id-index-on-view-field.ts b/packages/twenty-server/src/database/commands/upgrade-version-command/1-21/1-21-instance-command-fast-1775129420309-add-view-field-group-id-index-on-view-field.ts new file mode 100644 index 0000000000..a2744984f8 --- /dev/null +++ b/packages/twenty-server/src/database/commands/upgrade-version-command/1-21/1-21-instance-command-fast-1775129420309-add-view-field-group-id-index-on-view-field.ts @@ -0,0 +1,21 @@ +import { type QueryRunner } from 'typeorm'; + +import { RegisteredInstanceCommand } from 'src/engine/core-modules/upgrade/decorators/registered-instance-command.decorator'; +import { type FastInstanceCommand } from 'src/engine/core-modules/upgrade/interfaces/fast-instance-command.interface'; + +@RegisteredInstanceCommand('1.21.0', 1775129420309) +export class AddViewFieldGroupIdIndexOnViewFieldFastInstanceCommand + implements FastInstanceCommand +{ + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `CREATE INDEX IF NOT EXISTS "IDX_VIEW_FIELD_VIEW_FIELD_GROUP_ID" ON "core"."viewField" ("viewFieldGroupId")`, + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `DROP INDEX IF EXISTS "core"."IDX_VIEW_FIELD_VIEW_FIELD_GROUP_ID"`, + ); + } +} diff --git a/packages/twenty-server/src/database/commands/upgrade-version-command/1-21/1-21-instance-command-fast-1775165049548-migrate-messaging-calendar-to-core.ts b/packages/twenty-server/src/database/commands/upgrade-version-command/1-21/1-21-instance-command-fast-1775165049548-migrate-messaging-calendar-to-core.ts new file mode 100644 index 0000000000..38a5df1170 --- /dev/null +++ b/packages/twenty-server/src/database/commands/upgrade-version-command/1-21/1-21-instance-command-fast-1775165049548-migrate-messaging-calendar-to-core.ts @@ -0,0 +1,21 @@ +import { type QueryRunner } from 'typeorm'; + +import { RegisteredInstanceCommand } from 'src/engine/core-modules/upgrade/decorators/registered-instance-command.decorator'; +import { type FastInstanceCommand } from 'src/engine/core-modules/upgrade/interfaces/fast-instance-command.interface'; + +@RegisteredInstanceCommand('1.21.0', 1775165049548) +export class MigrateMessagingCalendarToCoreFastInstanceCommand + implements FastInstanceCommand +{ + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TABLE "core"."messageFolder" ALTER COLUMN "parentFolderId" TYPE character varying`, + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TABLE "core"."messageFolder" ALTER COLUMN "parentFolderId" TYPE uuid USING "parentFolderId"::uuid`, + ); + } +} diff --git a/packages/twenty-server/src/database/typeorm/core/migrations/common/1775200000000-addEmailThreadWidgetType.ts b/packages/twenty-server/src/database/commands/upgrade-version-command/1-21/1-21-instance-command-fast-1775200000000-add-email-thread-widget-type.ts similarity index 83% rename from packages/twenty-server/src/database/typeorm/core/migrations/common/1775200000000-addEmailThreadWidgetType.ts rename to packages/twenty-server/src/database/commands/upgrade-version-command/1-21/1-21-instance-command-fast-1775200000000-add-email-thread-widget-type.ts index 65035e20bd..fd4148c37e 100644 --- a/packages/twenty-server/src/database/typeorm/core/migrations/common/1775200000000-addEmailThreadWidgetType.ts +++ b/packages/twenty-server/src/database/commands/upgrade-version-command/1-21/1-21-instance-command-fast-1775200000000-add-email-thread-widget-type.ts @@ -1,10 +1,12 @@ -import { type MigrationInterface, type QueryRunner } from 'typeorm'; +import { type QueryRunner } from 'typeorm'; -export class AddEmailThreadWidgetType1775200000000 - implements MigrationInterface +import { RegisteredInstanceCommand } from 'src/engine/core-modules/upgrade/decorators/registered-instance-command.decorator'; +import { type FastInstanceCommand } from 'src/engine/core-modules/upgrade/interfaces/fast-instance-command.interface'; + +@RegisteredInstanceCommand('1.21.0', 1775200000000) +export class AddEmailThreadWidgetTypeFastInstanceCommand + implements FastInstanceCommand { - name = 'AddEmailThreadWidgetType1775200000000'; - public async up(queryRunner: QueryRunner): Promise { await queryRunner.query( `ALTER TYPE "core"."pageLayoutWidget_type_enum" RENAME TO "pageLayoutWidget_type_enum_old"`, diff --git a/packages/twenty-server/src/database/commands/upgrade-version-command/instance-commands.constant.ts b/packages/twenty-server/src/database/commands/upgrade-version-command/instance-commands.constant.ts index 3e6215eb34..2ef452acfd 100644 --- a/packages/twenty-server/src/database/commands/upgrade-version-command/instance-commands.constant.ts +++ b/packages/twenty-server/src/database/commands/upgrade-version-command/instance-commands.constant.ts @@ -1,3 +1,11 @@ // Auto-edited by generate:instance-command — do not edit manually -export const INSTANCE_COMMANDS = []; +import { AddViewFieldGroupIdIndexOnViewFieldFastInstanceCommand } from 'src/database/commands/upgrade-version-command/1-21/1-21-instance-command-fast-1775129420309-add-view-field-group-id-index-on-view-field'; +import { MigrateMessagingCalendarToCoreFastInstanceCommand } from 'src/database/commands/upgrade-version-command/1-21/1-21-instance-command-fast-1775165049548-migrate-messaging-calendar-to-core'; +import { AddEmailThreadWidgetTypeFastInstanceCommand } from 'src/database/commands/upgrade-version-command/1-21/1-21-instance-command-fast-1775200000000-add-email-thread-widget-type'; + +export const INSTANCE_COMMANDS = [ + AddViewFieldGroupIdIndexOnViewFieldFastInstanceCommand, + MigrateMessagingCalendarToCoreFastInstanceCommand, + AddEmailThreadWidgetTypeFastInstanceCommand, +]; diff --git a/packages/twenty-server/src/database/typeorm/core/migrations/common/1775129420309-add-view-field-group-id-index-on-view-field.ts b/packages/twenty-server/src/database/typeorm/core/migrations/common/1775129420309-add-view-field-group-id-index-on-view-field.ts deleted file mode 100644 index de55c0f4c1..0000000000 --- a/packages/twenty-server/src/database/typeorm/core/migrations/common/1775129420309-add-view-field-group-id-index-on-view-field.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { type MigrationInterface, type QueryRunner } from 'typeorm'; - -export class AddViewFieldGroupIdIndexOnViewField1775129420309 - implements MigrationInterface -{ - name = 'AddViewFieldGroupIdIndexOnViewField1775129420309'; - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query( - `CREATE INDEX IF NOT EXISTS "IDX_VIEW_FIELD_VIEW_FIELD_GROUP_ID" ON "core"."viewField" ("viewFieldGroupId")`, - ); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query( - `DROP INDEX IF EXISTS "core"."IDX_VIEW_FIELD_VIEW_FIELD_GROUP_ID"`, - ); - } -} diff --git a/packages/twenty-server/src/database/typeorm/core/migrations/common/1775165049548-migrate-messaging-calendar-to-core.ts b/packages/twenty-server/src/database/typeorm/core/migrations/common/1775165049548-migrate-messaging-calendar-to-core.ts deleted file mode 100644 index ccf0e4d292..0000000000 --- a/packages/twenty-server/src/database/typeorm/core/migrations/common/1775165049548-migrate-messaging-calendar-to-core.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { MigrationInterface, QueryRunner } from 'typeorm'; - -export class MigrateMessagingCalendarToCore1775165049548 - implements MigrationInterface -{ - name = 'MigrateMessagingCalendarToCore1775165049548'; - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query( - `ALTER TABLE "core"."messageFolder" ALTER COLUMN "parentFolderId" TYPE character varying`, - ); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query( - `ALTER TABLE "core"."messageFolder" ALTER COLUMN "parentFolderId" TYPE uuid USING "parentFolderId"::uuid`, - ); - } -}