From 8086b8be0359b0bec4e61b403f055f105ca08120 Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Tue, 16 Jun 2026 17:12:58 +0200 Subject: [PATCH] fix(migration): control_suppressions ohne FK auf canonical_controls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit prod-canonical_controls (aus dem DB-Swap) hat weder PK noch Unique auf id → FK InvalidForeignKey. control_uuid bleibt UUID (logische Referenz), wie die bereits FK-lose atom_classification auf prod. [migration-approved] Co-Authored-By: Claude Opus 4.8 --- backend-compliance/migrations/156_control_suppressions.sql | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backend-compliance/migrations/156_control_suppressions.sql b/backend-compliance/migrations/156_control_suppressions.sql index 565bfb78..4f3fb39c 100644 --- a/backend-compliance/migrations/156_control_suppressions.sql +++ b/backend-compliance/migrations/156_control_suppressions.sql @@ -5,6 +5,9 @@ -- (actor + reason + created_at beantworten "warum nicht geprüft?"). PER-TENANT. -- Composite PK (tenant_id, control_uuid) = genau eine aktuelle Zeile je -- Mandant+Control; Re-Suppress reaktiviert. Additiv, idempotent. [migration-approved] +-- HINWEIS: KEINE FK auf canonical_controls(id) — die prod-DB (aus dem DB-Swap) +-- hat dort weder PK noch Unique auf id (atom_classification ist dort ebenfalls +-- FK-los). control_uuid referenziert Controls daher nur logisch. SET search_path TO compliance, public; @@ -16,8 +19,7 @@ BEGIN CREATE TABLE IF NOT EXISTS control_suppressions ( tenant_id UUID NOT NULL, - control_uuid UUID NOT NULL - REFERENCES canonical_controls(id) ON DELETE CASCADE, + control_uuid UUID NOT NULL, reason TEXT, actor VARCHAR(120), active BOOLEAN NOT NULL DEFAULT TRUE,