Skip to content

fix: 延迟小时汇总随节点、探测级联删除,回退到旧版期间的删除不再留下历史 - #90

Merged
stqfdyr merged 1 commit into
mainfrom
fix/ping-hour-fk
Oct 2, 2026
Merged

stqfdyr merged 1 commit into
mainfrom
fix/ping-hour-fk

Conversation

@stqfdyr

@stqfdyr stqfdyr commented Oct 2, 2026

Copy link
Copy Markdown
Collaborator
  • ping_hour 的 node_id、task_id 加外键,删除节点或探测时级联清除,与 metric_hour 相同。1.3.1 及更早的 hub 不认识这张表:回退到它们期间删掉 id 最大的节点或探测、再新建一个,新建的拿到同一个 id,升级回来后在 7 天以上的延迟图里显示被删那个的历史。外键由 SQLite 执行,哪个版本删都会清掉
  • 这张表还没有随任何发布版出去,所以直接改建表语句,不加迁移
  • 删除节点、探测时不再单独清 ping_hour;迁移里清孤儿行的语句一并删掉
  • 汇总只读仍存在的探测的结果:有了外键,一条已删探测留下的结果会让那一小时每次都汇总失败,分钟明细也就一直删不掉

测试

  • cargo fmt --check、cargo clippy --all-targets -- -D warnings、cargo test(135 个)通过
  • 新测试照 v1.3.1 的语句删节点和探测,断言只剩未删的那一行,去掉外键时失败;另一个测试放一条已删探测的结果,断言该小时照常汇总,去掉读取条件时报 FOREIGN KEY constraint failed
  • 实测:v1.3.1 的库用本分支升级,回退到 v1.3.1 后删掉 id 最大的节点和探测、各新建一个,再升级回来,新节点与新探测都没有旧的延迟历史;改动前新节点显示被删节点 10 天的小时数据

ping_hour 的 node_id、task_id 加外键。1.3.1 及更早的 hub 不认识这张表,
回退到它们期间删掉 id 最大的节点或探测、再新建一个,新建的拿到同一个 id,
升级回来后会显示被删那个的小时级延迟历史。外键由 SQLite 执行,哪个版本删都会清掉。
@stqfdyr
stqfdyr merged commit edcbbd0 into main Oct 2, 2026
1 check passed
@stqfdyr
stqfdyr deleted the fix/ping-hour-fk branch October 2, 2026 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant