shangfangjian
63caa6736c
fix(P0-01): missing score 不得变 0:0 — score_status + CHECK 约束
新增 matches.score_status(known/missing/unknown):
- 替换 ck_matches_finished_has_score 为 ck_matches_score_integrity:
known → 必须有分; missing/unknown → goals 必须 NULL(不伪造 0:0)
- normalize: 完赛缺分不再静默降级为 scheduled,改设 score_status=missing
- events ingest: 创建/更新 Match 同步 score_status(比分由缺变 known / 确认缺分 missing)
- slices(form/h2h/home_away)/backtest: 显式加 score_status='known' 过滤完赛样本
- 迁移 0022 回填现有数据(绝不 UPDATE goals=0)
测试 tests/test_p0_score_status.py(9/9):约束存在性/Match 构造/normalize 行为。
54 相关测试全绿。
2026-09-22 02:32:53 +08:00
..
2026-09-19 22:51:35 +08:00
2026-09-21 17:52:45 +08:00
2026-09-21 17:31:36 +08:00
2026-09-19 22:51:35 +08:00
2026-09-21 23:27:48 +08:00
2026-09-21 23:29:09 +08:00
2026-09-19 22:51:35 +08:00
2026-09-21 17:13:57 +08:00
2026-09-19 09:40:24 +00:00
2026-09-15 00:14:24 +08:00
2026-09-21 23:29:09 +08:00
2026-09-19 09:40:24 +00:00
2026-09-22 01:15:45 +08:00
2026-09-22 01:33:14 +08:00
2026-09-19 22:51:35 +08:00
2026-09-21 18:36:43 +08:00
2026-09-19 08:02:57 +00:00
2026-09-20 19:40:20 +08:00
2026-09-19 22:51:35 +08:00
2026-09-22 01:33:14 +08:00
2026-09-21 17:52:45 +08:00
2026-09-22 01:33:14 +08:00
2026-09-19 06:43:55 +00:00
2026-09-22 02:32:53 +08:00
2026-09-19 06:43:55 +00:00
2026-09-21 17:31:36 +08:00
2026-09-21 20:55:26 +08:00
2026-09-22 01:33:14 +08:00
2026-09-19 08:02:57 +00:00
2026-09-22 00:27:53 +08:00
2026-09-21 17:04:04 +08:00
2026-09-19 22:51:35 +08:00
2026-09-22 01:15:45 +08:00
2026-09-19 08:02:57 +00:00
2026-09-20 08:45:35 +08:00