wecom-fullstack
9bbe3001bf
ci/woodpecker/push/main Pipeline was successful
fix(alerts): kpi_alerts 去重键改生成侧语义键 dedupe_key(A2)— 文案改动不再重复落库
- 列 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
2026-10-22 11:29:54 +08:00
..
2026-05-28 17:42:15 +08:00
2026-07-12 17:46:08 +08:00
2026-09-18 17:33:25 +08:00
2026-08-27 12:50:30 +08:00
2026-09-18 20:03:55 +08:00
2026-09-18 20:12:46 +08:00
2026-10-18 16:31:52 +08:00
2026-07-27 17:16:01 +08:00
2026-09-18 21:04:30 +08:00
2026-09-15 18:36:46 +08:00
2026-09-25 10:39:18 +08:00
2026-09-19 11:12:31 +08:00
2026-09-19 11:12:31 +08:00
2026-09-25 10:39:18 +08:00
2026-09-25 14:06:38 +08:00
2026-07-27 17:16:01 +08:00
2026-09-22 11:06:02 +08:00
2026-09-15 17:00:52 +08:00
2026-10-21 16:01:08 +08:00
2026-09-25 22:42:25 +08:00
2026-09-15 17:00:52 +08:00
2026-09-15 17:00:52 +08:00
2026-08-30 19:16:19 +08:00
2026-10-02 11:22:38 +08:00
2026-10-04 22:37:20 +08:00
2026-09-25 22:42:25 +08:00
2026-09-25 22:42:25 +08:00
2026-08-27 10:59:56 +08:00
2026-10-13 03:41:39 +08:00
2026-10-18 16:32:55 +08:00
2026-10-13 03:41:39 +08:00
2026-09-23 18:29:52 +08:00
2026-10-18 16:32:55 +08:00
2026-09-25 10:39:18 +08:00
2026-09-14 20:37:12 +08:00
2026-09-13 07:38:58 +08:00
2026-09-25 22:42:25 +08:00
2026-09-15 18:36:46 +08:00
2026-09-03 01:22:46 +08:00
2026-08-27 15:51:19 +08:00
2026-09-23 01:03:19 +08:00
2026-09-05 09:10:35 +08:00
2026-09-18 18:15:22 +08:00
2026-09-18 19:03:49 +08:00
2026-09-18 19:34:59 +08:00
2026-09-21 09:37:38 +08:00
2026-09-21 10:36:02 +08:00
2026-09-21 14:56:43 +08:00
2026-10-09 17:00:37 +08:00
2026-09-14 17:39:53 +08:00
2026-08-26 07:51:39 +08:00
2026-09-14 17:39:53 +08:00
2026-08-30 10:27:01 +08:00
2026-07-27 17:16:01 +08:00
2026-10-22 11:29:54 +08:00
2026-09-18 20:33:39 +08:00
2026-10-13 07:48:18 +08:00
2026-10-18 16:31:52 +08:00
2026-09-29 13:00:48 +08:00
2026-10-05 02:02:21 +08:00
2026-10-05 02:02:21 +08:00
2026-09-23 21:39:24 +08:00
2026-09-23 23:08:26 +08:00
2026-09-15 17:00:52 +08:00
2026-09-15 18:12:05 +08:00
2026-10-18 16:31:52 +08:00
2026-10-18 16:31:52 +08:00
2026-08-26 06:53:25 +08:00
2026-09-15 17:00:52 +08:00
2026-09-14 17:39:53 +08:00
2026-09-14 18:12:38 +08:00
2026-07-27 17:16:01 +08:00
2026-09-14 17:39:53 +08:00
2026-10-12 17:06:07 +08:00
2026-10-12 11:42:56 +08:00
2026-10-22 05:19:45 +08:00
2026-10-13 11:37:24 +08:00
2026-10-18 16:31:52 +08:00
2026-10-12 17:06:07 +08:00
2026-09-14 17:39:53 +08:00
2026-09-14 17:39:53 +08:00
2026-09-25 16:34:52 +08:00
2026-09-22 11:06:02 +08:00
2026-07-12 17:46:08 +08:00
2026-09-26 02:42:04 +08:00
2026-07-12 17:46:08 +08:00
2026-09-21 10:36:02 +08:00
2026-08-20 06:57:24 +08:00
2026-10-16 18:28:50 +08:00
2026-10-03 02:10:47 +08:00
2026-08-30 23:13:32 +08:00
2026-09-18 20:23:53 +08:00
2026-10-18 16:42:06 +08:00
2026-09-18 17:33:25 +08:00
2026-09-16 01:17:09 +08:00
2026-10-14 23:14:41 +08:00
2026-10-13 20:33:42 +08:00
2026-09-25 22:42:25 +08:00
2026-09-15 18:36:46 +08:00
2026-09-14 17:39:53 +08:00
2026-09-14 17:39:53 +08:00
2026-08-25 23:59:33 +08:00
2026-10-18 16:31:52 +08:00
2026-10-21 18:54:09 +08:00
2026-09-21 10:36:02 +08:00
2026-09-11 17:25:24 +08:00
2026-09-11 17:27:12 +08:00
2026-08-20 06:57:24 +08:00
2026-07-12 17:46:08 +08:00
2026-07-12 17:46:08 +08:00
2026-07-12 17:46:08 +08:00
2026-09-14 19:05:16 +08:00
2026-09-14 19:05:16 +08:00
2026-09-22 11:21:24 +08:00