diff --git a/server/migration/postgres/1772000000000-FixBlocklistIdDefault.ts b/server/migration/postgres/1772000000000-FixBlocklistIdDefault.ts new file mode 100644 index 00000000..fbf07048 --- /dev/null +++ b/server/migration/postgres/1772000000000-FixBlocklistIdDefault.ts @@ -0,0 +1,20 @@ +import type { MigrationInterface, QueryRunner } from 'typeorm'; + +export class FixBlocklistIdDefault1772000000000 implements MigrationInterface { + name = 'FixBlocklistIdDefault1772000000000'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TABLE "blocklist" ALTER COLUMN "id" SET DEFAULT nextval('public."blocklist_id_seq"'::regclass)` + ); + + await queryRunner.query( + `SELECT setval('public."blocklist_id_seq"', COALESCE((SELECT MAX("id") FROM "blocklist"), 0) + 1, false)` + ); + } + + public async down(): Promise { + // Intentionally left empty: dropping the DEFAULT on blocklist.id would + // reintroduce the original bug and break blocklist inserts. + } +}