db: enforce unique constraint on test_detection_results

- Add UniqueConstraint(test_id, detection_rule_id) named uq_tdr_test_rule to TestDetectionResult model

- Alembic b025: safely deduplicate existing rows before creating constraint
This commit is contained in:
2026-02-18 13:20:28 +01:00
parent 6147abc87a
commit 55dba1e00a
2 changed files with 43 additions and 1 deletions

View File

@@ -7,7 +7,7 @@ rule as triggered / not triggered / not applicable, along with notes.
import uuid
from datetime import datetime
from sqlalchemy import Column, String, Text, Boolean, DateTime, ForeignKey, Index
from sqlalchemy import Column, String, Text, Boolean, DateTime, ForeignKey, Index, UniqueConstraint
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.orm import relationship
@@ -52,4 +52,5 @@ class TestDetectionResult(Base):
__table_args__ = (
Index('ix_tdr_test', 'test_id'),
Index('ix_tdr_rule', 'detection_rule_id'),
UniqueConstraint('test_id', 'detection_rule_id', name='uq_tdr_test_rule'),
)