diff --git a/packages/twenty-server/src/database/typeorm/metadata/migrations/1739203246456-addIndexesOnFieldMetadataAndIndexFieldMetadata.ts b/packages/twenty-server/src/database/typeorm/metadata/migrations/1739203246456-addIndexesOnFieldMetadataAndIndexFieldMetadata.ts new file mode 100644 index 000000000..e33d7de77 --- /dev/null +++ b/packages/twenty-server/src/database/typeorm/metadata/migrations/1739203246456-addIndexesOnFieldMetadataAndIndexFieldMetadata.ts @@ -0,0 +1,25 @@ +import { MigrationInterface, QueryRunner } from 'typeorm'; + +export class AddIndexesOnFieldMetadataAndIndexFieldMetadata1739203246456 + implements MigrationInterface +{ + name = 'AddIndexesOnFieldMetadataAndIndexMetadata1739203246456'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `CREATE INDEX "IndexOnFieldMetadataId" ON "metadata"."indexFieldMetadata" ("fieldMetadataId") `, + ); + await queryRunner.query( + `CREATE INDEX "IndexOnObjectMetadataId" ON "metadata"."fieldMetadata" ("objectMetadataId") `, + ); + await queryRunner.query( + `CREATE INDEX "IndexOnWorkspaceId" ON "metadata"."fieldMetadata" ("workspaceId") `, + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "metadata"."IndexOnWorkspaceId"`); + await queryRunner.query(`DROP INDEX "metadata"."IndexOnObjectMetadataId"`); + await queryRunner.query(`DROP INDEX "metadata"."IndexOnFieldMetadataId"`); + } +} diff --git a/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata.entity.ts b/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata.entity.ts index a59750474..53b746388 100644 --- a/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata.entity.ts +++ b/packages/twenty-server/src/engine/metadata-modules/field-metadata/field-metadata.entity.ts @@ -52,6 +52,7 @@ export class FieldMetadataEntity< onDelete: 'CASCADE', }) @JoinColumn({ name: 'objectMetadataId' }) + @Index('IndexOnObjectMetadataId') object: Relation; @Column({ @@ -97,6 +98,7 @@ export class FieldMetadataEntity< isUnique: boolean; @Column({ nullable: false, type: 'uuid' }) + @Index('IndexOnWorkspaceId') workspaceId: string; @Column({ default: false }) diff --git a/packages/twenty-server/src/engine/metadata-modules/index-metadata/index-field-metadata.entity.ts b/packages/twenty-server/src/engine/metadata-modules/index-metadata/index-field-metadata.entity.ts index 036bee830..32680b645 100644 --- a/packages/twenty-server/src/engine/metadata-modules/index-metadata/index-field-metadata.entity.ts +++ b/packages/twenty-server/src/engine/metadata-modules/index-metadata/index-field-metadata.entity.ts @@ -2,6 +2,7 @@ import { Column, CreateDateColumn, Entity, + Index, JoinColumn, ManyToOne, PrimaryGeneratedColumn, @@ -31,6 +32,7 @@ export class IndexFieldMetadataEntity { indexMetadata: Relation; @Column({ nullable: false }) + @Index('IndexOnFieldMetadataId') fieldMetadataId: string; @ManyToOne( diff --git a/packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/services/cleaner.workspace-service.ts b/packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/services/cleaner.workspace-service.ts index 5c49ca1c8..64879aaa5 100644 --- a/packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/services/cleaner.workspace-service.ts +++ b/packages/twenty-server/src/engine/workspace-manager/workspace-cleaner/services/cleaner.workspace-service.ts @@ -146,7 +146,7 @@ export class CleanerWorkspaceService { `Sending ${workspace.id} ${ workspace.displayName } suspended since ${daysSinceInactive} days emails to users ['${workspaceMembers - .map((workspaceUser) => workspaceUser.id) + .map((workspaceUser) => workspaceUser.userId) .join(', ')}']`, ); @@ -199,7 +199,7 @@ export class CleanerWorkspaceService { `Sending workspace ${workspace.id} ${ workspace.displayName } deletion emails to users ['${workspaceMembers - .map((workspaceUser) => workspaceUser.id) + .map((workspaceUser) => workspaceUser.userId) .join(', ')}']`, );