feat(data): 新增历史数据归属订正脚本(默认 dry-run,--apply 写库)
- companions.user_id:按昵称唯一匹配用户回填(避免重复占用) - finance_records.user_id:按充值/提现/订单/对手方规则回填,无法唯一确定则保留不填 - 默认仅预览,幂等可重复执行;新增 npm 脚本 backfill:ownership 与回归护栏 - 文档补充订正说明(79 套件/611 用例全绿)
这个提交包含在:
@@ -130,3 +130,19 @@ MYSQL_DATABASE=peiwan
|
||||
## 九、回滚
|
||||
|
||||
本轮改动遵循"边界内最小改动",无破坏性数据库结构变更。如需回滚,按部署前的文件/库备份还原即可。
|
||||
|
||||
## 附:历史数据归属订正(可选,一次性)
|
||||
|
||||
用于修复历史数据(新数据已自动带归属,无需执行):
|
||||
- `companions.user_id` 为空 → 按"昵称唯一匹配用户"回填;
|
||||
- `finance_records.user_id` 缺失(0/NULL) → 按充值/提现/订单/对手方规则回填。
|
||||
|
||||
默认只**预览**,确认无误后再 `--apply`(脚本幂等,可重复执行):
|
||||
|
||||
```bash
|
||||
cd server
|
||||
npx tsx scripts/backfill-ownership.ts # 预览(不写库)
|
||||
npx tsx scripts/backfill-ownership.ts --apply # 写库
|
||||
```
|
||||
|
||||
输出会给出 `total / linked / ambiguous / noUser / filled / skipped` 统计与样例,便于核对。
|
||||
|
||||
在新工单中引用
屏蔽一个用户