fix(alerts): kpi_alerts 去重键改生成侧语义键 dedupe_key(A2)— 文案改动不再重复落库
ci/woodpecker/push/main Pipeline was successful
ci/woodpecker/push/main Pipeline was successful
- 列 dedupe_key VARCHAR(160) NULL + 唯一索引 (entity_id,kpi_id,alert_type,dedupe_key) - write_alerts 三级判重:dedupe_key 命中 / 历史 NULL 行反解兼容 / 无命中插入 - 并发兜底:savepoint 捕获 IntegrityError 计跳过 - dry-run would_insert 改用 count_would_insert(修复 len(hits) 虚高) - DDL 幂等执行器 scripts/ddl_kpi_alerts_dedupe.py(check/apply/rollback) - tests/test_dedupe_key.py 7 passed(T1-T7b);alert/overdue 回归 173 passed
This commit is contained in:
@@ -167,6 +167,8 @@ class KPIAlert(Base):
|
||||
alert_level = Column(String(20), default="yellow", comment="green/yellow/red")
|
||||
alert_message = Column(String(500), nullable=False)
|
||||
alert_type = Column(String(30), default="actual", comment="actual/forecast — 实际值超限/预测值超限")
|
||||
dedupe_key = Column(String(160), nullable=True,
|
||||
comment="生成侧幂等键 period|scope|ident;仅 alert_type=overdue 填充,历史行为 NULL")
|
||||
suggestion = Column(Text, nullable=True, comment="情景建议")
|
||||
action_plan_linked_id = Column(Integer, nullable=True, comment="关联的改善计划ID")
|
||||
status = Column(String(20), default="pending", comment="pending/processing/resolved")
|
||||
|
||||
Reference in New Issue
Block a user