diff --git a/server/entity/User.ts b/server/entity/User.ts index 9d1918f144..642fbd73f7 100644 --- a/server/entity/User.ts +++ b/server/entity/User.ts @@ -18,6 +18,7 @@ import { AfterLoad, Column, Entity, + Index, Not, OneToMany, OneToOne, @@ -86,9 +87,11 @@ export class User { @Column({ type: 'integer', default: UserType.PLEX }) public userType: UserType; + @Index('IDX_user_plexId') @Column({ type: 'integer', nullable: true, select: true }) public plexId?: number | null; + @Index('IDX_user_jellyfinUserId') @Column({ type: 'varchar', nullable: true }) public jellyfinUserId?: string | null; diff --git a/server/migration/postgres/1776157803546-AddUserAuthIndexes.ts b/server/migration/postgres/1776157803546-AddUserAuthIndexes.ts new file mode 100644 index 0000000000..992aa2e764 --- /dev/null +++ b/server/migration/postgres/1776157803546-AddUserAuthIndexes.ts @@ -0,0 +1,19 @@ +import type { MigrationInterface, QueryRunner } from 'typeorm'; + +export class AddUserAuthIndexes1776157803546 implements MigrationInterface { + name = 'AddUserAuthIndexes1776157803546'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `CREATE INDEX "IDX_user_plexId" ON "user" ("plexId") ` + ); + await queryRunner.query( + `CREATE INDEX "IDX_user_jellyfinUserId" ON "user" ("jellyfinUserId") ` + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "public"."IDX_user_jellyfinUserId"`); + await queryRunner.query(`DROP INDEX "public"."IDX_user_plexId"`); + } +} diff --git a/server/migration/sqlite/1776157803546-AddUserAuthIndexes.ts b/server/migration/sqlite/1776157803546-AddUserAuthIndexes.ts new file mode 100644 index 0000000000..e185f488ab --- /dev/null +++ b/server/migration/sqlite/1776157803546-AddUserAuthIndexes.ts @@ -0,0 +1,19 @@ +import type { MigrationInterface, QueryRunner } from 'typeorm'; + +export class AddUserAuthIndexes1776157803546 implements MigrationInterface { + name = 'AddUserAuthIndexes1776157803546'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `CREATE INDEX "IDX_user_plexId" ON "user" ("plexId") ` + ); + await queryRunner.query( + `CREATE INDEX "IDX_user_jellyfinUserId" ON "user" ("jellyfinUserId") ` + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`DROP INDEX "IDX_user_jellyfinUserId"`); + await queryRunner.query(`DROP INDEX "IDX_user_plexId"`); + } +}