fix(decisions): make queue key restore-safe

Replace the referenced composite unique index with a table constraint so logical backups restore foreign keys reliably.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
DottaandPaperclip committed 2026-08-01 17:38:14 +00:00
1 parent 0e40228016
commit d32c69a23b
4 files changed
+37666 -1

No files matched your search

@@ -0,0 +1,4 @@
ALTER TABLE "decision_queue_items" DROP CONSTRAINT "decision_queue_items_queue_company_fk";--> statement-breakpoint
DROP INDEX "decision_queues_id_company_uq";--> statement-breakpoint
ALTER TABLE "decision_queues" ADD CONSTRAINT "decision_queues_id_company_uq" UNIQUE("id","company_id");--> statement-breakpoint
ALTER TABLE "decision_queue_items" ADD CONSTRAINT "decision_queue_items_queue_company_fk" FOREIGN KEY ("queue_id","company_id") REFERENCES "public"."decision_queues"("id","company_id") ON DELETE cascade ON UPDATE no action;
File diff suppressed because it is too large. Load diff
@@ -1380,6 +1380,13 @@
"when": 1785603158310,
"tag": "0198_decision_queues_and_triage",
"breakpoints": true
},
{
"idx": 199,
"version": "7",
"when": 1785605818353,
"tag": "0199_decision_queue_composite_key",
"breakpoints": true
}
]
}
+2 -1
View File
@@ -10,6 +10,7 @@ import {
pgTable,
text,
timestamp,
unique,
uniqueIndex,
uuid,
} from "drizzle-orm/pg-core";
@@ -41,7 +42,7 @@ export const decisionQueues = pgTable(
(table) => ({
companyKeyUq: uniqueIndex("decision_queues_company_key_uq").on(table.companyId, table.key),
companyUpdatedIdx: index("decision_queues_company_updated_idx").on(table.companyId, table.updatedAt),
idCompanyUq: uniqueIndex("decision_queues_id_company_uq").on(table.id, table.companyId),
idCompanyUq: unique("decision_queues_id_company_uq").on(table.id, table.companyId),
creatorCheck: check(
"decision_queues_creator_check",
sql`(