From 732ad36bbac17c65c769cad2e1be68b2bff83e61 Mon Sep 17 00:00:00 2001 From: pieartsy Date: Fri, 6 Mar 2026 16:52:26 -0500 Subject: [PATCH] Add unique index migration (#34) * add migration to delete duplicates that currently exist in the db * change model and migration to add a unique index constraint to id and name * renamed unique index name to be readable * redid model and migration to use @Unique instead of @Index * remove //Here comment --------- Co-authored-by: Aster Fialla --- database/entity/Member.ts | 3 ++- database/migrations/1772830252670-update.ts | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 database/migrations/1772830252670-update.ts diff --git a/database/entity/Member.ts b/database/entity/Member.ts index b038740..246c320 100644 --- a/database/entity/Member.ts +++ b/database/entity/Member.ts @@ -1,6 +1,7 @@ -import {Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn} from "typeorm" +import {Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, Unique} from "typeorm" @Entity({name: "Member", synchronize: true}) +@Unique("UQ_Member_userid_name", ['userid', 'name']) export class Member { @PrimaryGeneratedColumn() diff --git a/database/migrations/1772830252670-update.ts b/database/migrations/1772830252670-update.ts new file mode 100644 index 0000000..c35a943 --- /dev/null +++ b/database/migrations/1772830252670-update.ts @@ -0,0 +1,14 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class Update1772830252670 implements MigrationInterface { + name = 'Update1772830252670' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "Member" ADD CONSTRAINT "UQ_Member_userid_name" UNIQUE ("userid", "name")`); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(`ALTER TABLE "Member" DROP CONSTRAINT "UQ_Member_userid_name"`); + } + +}