1.0.486.sql 2.0 KB

12345678910111213141516171819202122232425262728293031
  1. -- S8-STANDARD-DATASET-HARD-CUTOVER-1 · 步骤 1:物理删除「报警规则」整条功能。
  2. --
  3. -- 裁决:S8 的运行时告警判定权威是 ado_s8_watch_rule,从来不是 ado_s8_alert_rule。
  4. -- 取证(三条,互相独立):
  5. -- 1. 三个 evaluator 的 IReadOnlyList<AdoS8AlertRule> alertRules 形参,方法体读取次数 = 0;
  6. -- 2. 调度器每 tick 查一次该表后转手丢弃(NO-OP READ),本批已连同形参一并删除;
  7. -- 3. 全表 1 行(G01_TEST_ALERT / scene 'S2S6_PRODUCTION' 这一已废弃的复合场景码),
  8. -- 零 FK、零触发器、零视图引用、除 PRIMARY 外无索引。
  9. --
  10. -- 上一阶段(S8-LEGACY-RUNTIME-RETIREMENT-1)只做到「写入口 410 + 入口下线」。
  11. -- 本阶段是 Hard Cutover:不保留只读 API、不保留表、不保留 410 兼容层。
  12. --
  13. -- ⚠️ 不要与 ado_s8_alert_record 混淆 —— 那是另一张表,有活跃消费方
  14. -- (AidopKanbanController 的看板查询,4 处)。本脚本不碰它。
  15. --
  16. -- 幂等:IF EXISTS + 带条件 DELETE,重复执行无副作用。
  17. -- ── 1. 删除配置入口菜单 ─────────────────────────────────────────────────────
  18. -- 上一版(1.0.484)把它置为 Status=2 停用;功能既已物理删除,条目本身不再有意义。
  19. -- 先清 SysRoleMenu 授权行,避免留下指向不存在菜单的悬挂授权。
  20. DELETE rm FROM SysRoleMenu rm
  21. JOIN SysMenu m ON m.Id = rm.MenuId
  22. WHERE m.Name = 'aidopS8AlertRulesConfig'
  23. AND m.Path = '/aidop/s8/config/alert-rules';
  24. DELETE FROM SysMenu
  25. WHERE Name = 'aidopS8AlertRulesConfig'
  26. AND Path = '/aidop/s8/config/alert-rules';
  27. -- ── 2. 删除表 ───────────────────────────────────────────────────────────────
  28. DROP TABLE IF EXISTS ado_s8_alert_rule;