docs: reorganize by module
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# 旧规则绑定表下线观察与删表草案
|
||||
|
||||
## 当前策略
|
||||
|
||||
- 新主链路:`leaudit_rule_group_bindings`
|
||||
- 旧兼容表:`leaudit_rule_type_bindings`
|
||||
- 当前仅保留 `UpdateBinding / DeleteBinding` 对历史 `BindingId` 的 fallback
|
||||
|
||||
## 已完成
|
||||
|
||||
- 文档类型保存不再双写旧表
|
||||
- `CreateBinding` 不再 fallback 写旧表
|
||||
- 规则绑定主读链路优先读取新分组绑定
|
||||
|
||||
## 观察期要看什么
|
||||
|
||||
### 1. 后端日志
|
||||
|
||||
当前已经在以下场景增加明确日志:
|
||||
|
||||
- `rule binding legacy fallback hit on update`
|
||||
- `rule binding legacy fallback hit on delete`
|
||||
|
||||
如果观察期内不再出现以上日志,说明已经基本没有历史旧 `BindingId` 命中。
|
||||
|
||||
### 2. 数据检查
|
||||
|
||||
执行:
|
||||
|
||||
```bash
|
||||
psql ... -f scripts/precheck_drop_legacy_rule_type_bindings.sql
|
||||
```
|
||||
|
||||
重点看:
|
||||
|
||||
- `doc_types_legacy_only = 0`
|
||||
- 新链路绑定明细完整
|
||||
- 旧表活动绑定仅剩历史冗余数据
|
||||
|
||||
## 建议收口顺序
|
||||
|
||||
1. 保持现状进入观察期
|
||||
2. 连续一段时间无 fallback 日志
|
||||
3. 删除 `UpdateBinding / DeleteBinding` 的旧表 fallback
|
||||
4. 再执行删表 SQL
|
||||
|
||||
## 删表前条件
|
||||
|
||||
- 前端主链路全部走评查点分组绑定接口
|
||||
- 不再有外部脚本调用旧 `/api/rule-sets/bindings/{bindingId}` 历史 ID
|
||||
- 观察期日志为 0
|
||||
- `doc_types_legacy_only = 0`
|
||||
|
||||
## 删表 SQL 草案
|
||||
|
||||
```sql
|
||||
BEGIN;
|
||||
|
||||
DROP TABLE IF EXISTS leaudit_rule_type_bindings;
|
||||
|
||||
COMMIT;
|
||||
```
|
||||
|
||||
## 回滚草案
|
||||
|
||||
如果只是删 fallback 代码但还没删表,直接回滚代码即可。
|
||||
|
||||
如果已经删表,必须依赖:
|
||||
|
||||
- 事先数据库备份
|
||||
- 或按历史 DDL 重建表结构后再回灌数据
|
||||
|
||||
因此删表动作必须放在数据库备份之后执行。
|
||||
Reference in New Issue
Block a user