forked from wangziqi/gongxue-base
feat: add pocketbase sqlite exporter
This commit is contained in:
28
README.md
28
README.md
@@ -404,7 +404,26 @@ docs/refactor/production-launch-evidence.template.json
|
||||
|
||||
## PocketBase 迁移 Dry-Run
|
||||
|
||||
把旧 PocketBase 导出的集合 JSON 放到仓库根目录 `pb_export/` 后,先执行不写数据库的静态 dry-run:
|
||||
如果旧数据源是 SQLite,先从旧 PocketBase 数据目录只读导出业务 collection。默认读取 `F:\project\参考\旧题库数据库文件`,输出到已被 `.gitignore` 覆盖的 `pb_export/`:
|
||||
|
||||
```powershell
|
||||
$env:PB_SQLITE_DIR="F:\project\参考\旧题库数据库文件"
|
||||
$env:PB_EXPORT_DIR="F:\project\pb_export"
|
||||
npm run pb:export:sqlite
|
||||
```
|
||||
|
||||
导出会生成:
|
||||
|
||||
```text
|
||||
pb_export/*.json 各 PocketBase collection 的普通业务 JSON
|
||||
pb_export/sqlite-export-manifest.json
|
||||
pb_export/storage-manifest.json
|
||||
pb_export/pb_schema.sqlite.json
|
||||
```
|
||||
|
||||
默认导出会移除 `password/token/secret/sessionKey/openid/unionid` 等敏感身份或密钥字段,只在 manifest 中记录脱敏字段数量;手机号等迁移必需字段会保留。不要把 `pb_export/`、manifest 或真实迁移报告提交到 Git。
|
||||
|
||||
把旧 PocketBase 导出的集合 JSON 放到仓库根目录 `pb_export/` 后,执行不写数据库的静态 dry-run:
|
||||
|
||||
```bash
|
||||
npm run pb:import:dry-run
|
||||
@@ -420,6 +439,13 @@ dry-run 会检查导出目录、JSON 形态、核心集合缺失、重复/缺失
|
||||
|
||||
默认 dry-run 使用 `development` profile;正式迁移、预生产验收和 CI 应使用 `production` profile。生产 profile 会额外输出 `migrationReadiness`,检查用户、题目、科目、分类、订单、套餐、激活码、单词和知识手册等必需集合,以及用户手机号、题目归属、订单套餐、激活码、单词和手册归属等关键字段覆盖率。`--profile` 只接受 `development` 或 `production`,拼写错误会按 blocker 失败。
|
||||
|
||||
当前真实 SQLite 基线已经跑通只读导出:58 个业务 collection、248555 条记录、9 个 storage 原始资源文件。production dry-run 目前仍有 2 个真实数据 blocker:30 个订单缺用户、22 个知识手册章节缺所属手册;还有 `user_answer_records`、`mock_exam_configs`、`referral_qrcodes`、`commission_settings` 等 mapper gap,详见:
|
||||
|
||||
```text
|
||||
docs/refactor/pocketbase-real-data-migration-runbook.md
|
||||
docs/refactor/next-development-todo.md
|
||||
```
|
||||
|
||||
真实生产数据迁移不要只看命令是否能跑完,需要按迁移验收 runbook 执行 dry-run、正式导入演练、导入后校验、业务抽样、Taro 联调、冻结切换和回滚准备:
|
||||
|
||||
```text
|
||||
|
||||
Reference in New Issue
Block a user