Merge branch 'main' of ssh://gitea.meghsakha.com:22222/Benjamin_Boenisch/breakpilot-compliance
CI / detect-changes (push) Successful in 9s
CI / branch-name (push) Has been skipped
CI / guardrail-integrity (push) Has been skipped
CI / secret-scan (push) Has been skipped
CI / dep-audit (push) Has been skipped
CI / build-sha-integrity (push) Successful in 6s
CI / sbom-scan (push) Has been skipped
CI / validate-canonical-controls (push) Successful in 4s
CI / loc-budget (push) Successful in 18s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go (push) Failing after 1m3s
CI / iace-gt-coverage (push) Successful in 18s
CI / test-python-backend (push) Has been skipped
CI / test-python-document-crawler (push) Has been skipped
CI / test-python-dsms-gateway (push) Has been skipped
CI / nodejs-build (push) Successful in 3m8s
CI / detect-changes (push) Successful in 9s
CI / branch-name (push) Has been skipped
CI / guardrail-integrity (push) Has been skipped
CI / secret-scan (push) Has been skipped
CI / dep-audit (push) Has been skipped
CI / build-sha-integrity (push) Successful in 6s
CI / sbom-scan (push) Has been skipped
CI / validate-canonical-controls (push) Successful in 4s
CI / loc-budget (push) Successful in 18s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go (push) Failing after 1m3s
CI / iace-gt-coverage (push) Successful in 18s
CI / test-python-backend (push) Has been skipped
CI / test-python-document-crawler (push) Has been skipped
CI / test-python-dsms-gateway (push) Has been skipped
CI / nodejs-build (push) Successful in 3m8s
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
-- 158_dedup_doc_check_controls.sql
|
||||
-- Behebt die historische Triplikation von compliance.doc_check_controls
|
||||
-- (Dump-Artefakt: kein PK/Unique -> identische Zeilen mehrfach; prod 3x).
|
||||
-- Idempotent + verhindert Wiederkehr. macmini ist bereits dedupt (no-op),
|
||||
-- prod wird 1713->571 / 1143->381 / 225->75 dedupt.
|
||||
-- [migration-approved]
|
||||
|
||||
-- 1) Dedup: pro (doc_type, control_id) nur die Zeile mit kleinster ctid behalten.
|
||||
DELETE FROM compliance.doc_check_controls a
|
||||
USING compliance.doc_check_controls b
|
||||
WHERE a.ctid > b.ctid
|
||||
AND a.doc_type IS NOT DISTINCT FROM b.doc_type
|
||||
AND a.control_id IS NOT DISTINCT FROM b.control_id;
|
||||
|
||||
-- 2) Wiederkehr verhindern: Unique-Constraint auf (doc_type, control_id).
|
||||
DO $do$
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname = 'uq_doc_check_controls_doctype_control'
|
||||
) THEN
|
||||
ALTER TABLE compliance.doc_check_controls
|
||||
ADD CONSTRAINT uq_doc_check_controls_doctype_control
|
||||
UNIQUE (doc_type, control_id);
|
||||
END IF;
|
||||
END
|
||||
$do$;
|
||||
Reference in New Issue
Block a user