forked from wangziqi/gongxue-base
test: add real migration business sampling
This commit is contained in:
@@ -329,6 +329,39 @@ Remove-Item Env:\FAIL_ON_WARNINGS
|
||||
|
||||
## 阶段 4:抽样验收
|
||||
|
||||
结构校验通过后,先运行只读业务抽样脚本:
|
||||
|
||||
```bash
|
||||
npm run pb:import:sample
|
||||
```
|
||||
|
||||
它和 `pb:import:validate` 的边界不同:
|
||||
|
||||
- `pb:import:validate` 证明核心表关系、敏感字段和迁移隔离策略没有断。
|
||||
- `pb:import:sample` 证明真实迁移数据能被新 SaaS 业务模型消费,覆盖题库入口、内容节点、合集、练习蓝图、题目当前版本、答题记录、错题、收藏、单词、知识手册、分数线、订单、支付、权益、激活码、内容资源、视频和敏感字段泄露。
|
||||
- 脚本只读数据库,不修复数据,不生成测试数据;FAIL 表示当前业务模型不能安全消费该部分迁移数据,WARN 表示旧数据或上线配置需要人工复核。
|
||||
|
||||
常用参数:
|
||||
|
||||
```powershell
|
||||
$env:DATABASE_URL="postgresql://postgres:postgres@127.0.0.1:54322/postgres"
|
||||
$env:PB_SAMPLE_TENANT_SLUG="master"
|
||||
npm run pb:import:sample
|
||||
|
||||
# 需要保存本地报告时开启;报告目录已被 .gitignore 忽略
|
||||
$env:PB_SAMPLE_WRITE_REPORT="true"
|
||||
npm run pb:import:sample
|
||||
Remove-Item Env:\PB_SAMPLE_WRITE_REPORT
|
||||
```
|
||||
|
||||
当前真实迁移库最近一次抽样结果:
|
||||
|
||||
```text
|
||||
npm run pb:import:sample => 0 failures, 6 warnings, 1 skipped, 39 passed
|
||||
```
|
||||
|
||||
其中 6 个 warning 分别对应:迁移待复核题目、部分旧答题记录引用已删除题、已支付缺用户订单、已使用但缺使用人的激活码、已知 critical import issues 人工复核项、最新导入 warning/error issue 留档项;`videos.not_present` 为 SKIP,因为当前旧库没有题目视频记录。
|
||||
|
||||
每次演练都应至少抽样下面数据:
|
||||
|
||||
| 范围 | 抽样建议 | 验收点 |
|
||||
|
||||
Reference in New Issue
Block a user