From 27d9e8464d06f5a48abea844d7a5c1078f7f1e6d Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Mon, 5 Dec 2022 12:04:36 +0800 Subject: [PATCH] Add unique constraint on user_id and group_id to group_membership table --- packages/api/src/entity/groups/group_membership.ts | 2 ++ ...0102.do.add_unique_constraint_in_group_membership.sql | 9 +++++++++ ...02.undo.add_unique_constraint_in_group_membership.sql | 9 +++++++++ 3 files changed, 20 insertions(+) create mode 100755 packages/db/migrations/0102.do.add_unique_constraint_in_group_membership.sql create mode 100755 packages/db/migrations/0102.undo.add_unique_constraint_in_group_membership.sql diff --git a/packages/api/src/entity/groups/group_membership.ts b/packages/api/src/entity/groups/group_membership.ts index 0bfc01c63..4db78bd45 100644 --- a/packages/api/src/entity/groups/group_membership.ts +++ b/packages/api/src/entity/groups/group_membership.ts @@ -6,6 +6,7 @@ import { ManyToOne, OneToOne, PrimaryGeneratedColumn, + Unique, UpdateDateColumn, } from 'typeorm' @@ -14,6 +15,7 @@ import { Group } from './group' import { Invite } from './invite' @Entity() +@Unique('group_membership_unique', ['user', 'group']) export class GroupMembership { @PrimaryGeneratedColumn('uuid') id!: string diff --git a/packages/db/migrations/0102.do.add_unique_constraint_in_group_membership.sql b/packages/db/migrations/0102.do.add_unique_constraint_in_group_membership.sql new file mode 100755 index 000000000..583a5c885 --- /dev/null +++ b/packages/db/migrations/0102.do.add_unique_constraint_in_group_membership.sql @@ -0,0 +1,9 @@ +-- Type: DO +-- Name: add_unique_constraint_in_group_membership +-- Description: Add unique constraint in group_membership table + +BEGIN; + +ALTER TABLE omnivore.group_membership ADD CONSTRAINT group_membership_unique UNIQUE (group_id, user_id); + +COMMIT; diff --git a/packages/db/migrations/0102.undo.add_unique_constraint_in_group_membership.sql b/packages/db/migrations/0102.undo.add_unique_constraint_in_group_membership.sql new file mode 100755 index 000000000..699e71e9d --- /dev/null +++ b/packages/db/migrations/0102.undo.add_unique_constraint_in_group_membership.sql @@ -0,0 +1,9 @@ +-- Type: UNDO +-- Name: add_unique_constraint_in_group_membership +-- Description: Add unique constraint in group_membership table + +BEGIN; + +ALTER TABLE omnivore.group_membership DROP CONSTRAINT IF EXISTS group_membership_unique; + +COMMIT;