import { Migration } from '@mikro-orm/migrations'; export class Migration20260701160000_addUserGroupUsersTable extends Migration { override async up(): Promise { this.addSql(` create table "user_group_users" ( "id" char(26) not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, "user_id" char(26) not null, "user_group_id" char(26) not null, constraint "user_group_users_pkey" primary key ("id") ); `); this.addSql(`create index "user_group_users_created_at_index" on "user_group_users" ("created_at");`); this.addSql(`create index "user_group_users_deleted_at_index" on "user_group_users" ("deleted_at");`); this.addSql(`create index "user_group_users_user_group_id_index" on "user_group_users" ("user_group_id");`); this.addSql(`create index "user_group_users_user_id_index" on "user_group_users" ("user_id");`); this.addSql(`alter table "user_group_users" add constraint "user_group_users_user_id_user_group_id_unique" unique ("user_id", "user_group_id");`); this.addSql(` alter table "user_group_users" add constraint "user_group_users_user_id_foreign" foreign key ("user_id") references "users" ("id") on update cascade; `); this.addSql(` alter table "user_group_users" add constraint "user_group_users_user_group_id_foreign" foreign key ("user_group_id") references "user_groups" ("id") on update cascade; `); } override async down(): Promise { this.addSql(`alter table "user_group_users" drop constraint if exists "user_group_users_user_group_id_foreign";`); this.addSql(`alter table "user_group_users" drop constraint if exists "user_group_users_user_id_foreign";`); this.addSql(`drop table if exists "user_group_users" cascade;`); } }