summary refs log tree commit diff
path: root/src/util/migration/postgres
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2026-01-29 20:32:34 +0100
committerRory& <root@rory.gay>2026-01-29 20:32:34 +0100
commit0edceb80591a65e9d94f7ebae6ebd6b2f032bb3c (patch)
tree5f31908cb7e5f4cafb933c3b8382383547f7cef1 /src/util/migration/postgres
parentUpdate message type enum (diff)
downloadserver-ts-0edceb80591a65e9d94f7ebae6ebd6b2f032bb3c.tar.xz
Thread members ported from #876
Diffstat (limited to 'src/util/migration/postgres')
-rw-r--r--src/util/migration/postgres/1769653303971-ThreadMembers.ts25
-rw-r--r--src/util/migration/postgres/1769653303972-ThreadMembersIdx.ts13
2 files changed, 38 insertions, 0 deletions
diff --git a/src/util/migration/postgres/1769653303971-ThreadMembers.ts b/src/util/migration/postgres/1769653303971-ThreadMembers.ts
new file mode 100644

index 00000000..45f231b7 --- /dev/null +++ b/src/util/migration/postgres/1769653303971-ThreadMembers.ts
@@ -0,0 +1,25 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class ThreadMembers1769653303971 implements MigrationInterface { + name = "ThreadMembers1769653303971"; + + public async up(queryRunner: QueryRunner): Promise<void> { + await queryRunner.query( + `CREATE TABLE "thread_members" ("index" SERIAL NOT NULL, "id" character varying NOT NULL, "member_id" integer NOT NULL, "join_timestamp" TIMESTAMP NOT NULL, "muted" boolean NOT NULL, "mute_config" text, "flags" integer NOT NULL, CONSTRAINT "PK_22232a9f7a08fb9967a9c78da53" PRIMARY KEY ("index"))`, + ); + await queryRunner.query(`CREATE UNIQUE INDEX "IDX_bde0970b6a26bdbd83508addd2" ON "thread_members" ("id", "member_id") `); + await queryRunner.query( + `ALTER TABLE "thread_members" ADD CONSTRAINT "FK_cf20e37d71b0e1bf1ab633861c8" FOREIGN KEY ("id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, + ); + await queryRunner.query( + `ALTER TABLE "thread_members" ADD CONSTRAINT "FK_606ac45e8756d3440c584477f4e" FOREIGN KEY ("member_id") REFERENCES "members"("index") ON DELETE CASCADE ON UPDATE NO ACTION`, + ); + } + + public async down(queryRunner: QueryRunner): Promise<void> { + await queryRunner.query(`ALTER TABLE "thread_members" DROP CONSTRAINT "FK_606ac45e8756d3440c584477f4e"`); + await queryRunner.query(`ALTER TABLE "thread_members" DROP CONSTRAINT "FK_cf20e37d71b0e1bf1ab633861c8"`); + await queryRunner.query(`DROP INDEX "public"."IDX_bde0970b6a26bdbd83508addd2"`); + await queryRunner.query(`DROP TABLE "thread_members"`); + } +} diff --git a/src/util/migration/postgres/1769653303972-ThreadMembersIdx.ts b/src/util/migration/postgres/1769653303972-ThreadMembersIdx.ts new file mode 100644
index 00000000..40dc952a --- /dev/null +++ b/src/util/migration/postgres/1769653303972-ThreadMembersIdx.ts
@@ -0,0 +1,13 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class ThreadMembersIdx1769653303972 implements MigrationInterface { + name = "ThreadMembersIdx1769653303972"; + + public async up(queryRunner: QueryRunner): Promise<void> { + await queryRunner.query(`ALTER TABLE public.thread_members RENAME COLUMN member_id TO member_idx;`); + } + + public async down(queryRunner: QueryRunner): Promise<void> { + await queryRunner.query(`ALTER TABLE public.thread_members RENAME COLUMN member_idx TO member_id;`); + } +}