controlplane/migrations/0125_acoustic_jackpot.sql (23 lines of code) (raw):

CREATE TABLE IF NOT EXISTS "organization_invitation_groups" ( "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, "invitation_id" uuid NOT NULL, "group_id" uuid NOT NULL ); -- Copy invitation groups to the new table INSERT INTO "organization_invitation_groups"("invitation_id", "group_id") SELECT "id" as "invitation_id", "group_id" FROM "organization_invitations" "inv" WHERE "inv"."group_id" IS NOT NULL --> statement-breakpoint ALTER TABLE "organization_invitations" DROP CONSTRAINT "organization_invitations_group_id_organization_groups_id_fk"; --> statement-breakpoint DO $$ BEGIN ALTER TABLE "organization_invitation_groups" ADD CONSTRAINT "organization_invitation_groups_invitation_id_organization_invitations_id_fk" FOREIGN KEY ("invitation_id") REFERENCES "public"."organization_invitations"("id") ON DELETE cascade ON UPDATE no action; EXCEPTION WHEN duplicate_object THEN null; END $$; --> statement-breakpoint DO $$ BEGIN ALTER TABLE "organization_invitation_groups" ADD CONSTRAINT "organization_invitation_groups_group_id_organization_groups_id_fk" FOREIGN KEY ("group_id") REFERENCES "public"."organization_groups"("id") ON DELETE cascade ON UPDATE no action; EXCEPTION WHEN duplicate_object THEN null; END $$; --> statement-breakpoint CREATE INDEX IF NOT EXISTS "org_inv_invitation_idx" ON "organization_invitation_groups" USING btree ("invitation_id");--> statement-breakpoint CREATE INDEX IF NOT EXISTS "org_inv_group_id" ON "organization_invitation_groups" USING btree ("group_id");--> statement-breakpoint ALTER TABLE "organization_invitations" DROP COLUMN IF EXISTS "group_id";