docs: 记录任务 #146 生产导入

This commit is contained in:
chengma
2026-08-11 11:54:16 +08:00
parent dd1c7c174c
commit 56b1a46c5c
@@ -28,12 +28,23 @@
Excel 最大更新时间;相同文件和参数会产生完全相同的请求。Token 只读取环境变量,
临时错误指数退避,业务错误立即停止。实现与建单方案一致。
用户随后明确把范围扩展到生产执行。部署前将生产 MySQL 备份到
`/opt/cmautobuy/backups/autobuy-before-e4385ac-20260811T034853Z.sql.gz` 并通过 gzip
校验;按提交 `e4385ac` 构建 Linux amd64 二进制,SHA-256 为
`287e5b9484f9e827cbed3325c8c3c31b4209bca487692f1db6fa89fcd4ff9bd7`,部署到
`/opt/cmautobuy/releases/e4385ac/`。服务器随机生成 32 字节目录 Token,只写入权限
`600` 的 `/etc/cmautobuy/admin.env`,未输出明文。服务启动后 schema v10 自检通过,
再通过 HTTPS 顺序提交全部 11 个批次。
## 改了哪些
- `tools/import_catalog_xlsx.py`:Excel 聚合、批次规划、dry-run、鉴权提交、重试和汇总。
- `tools/test_import_catalog_xlsx.py`:脱敏工作簿的聚合、幂等、分批、冲突和重试测试。
- `tools/requirements-catalog-import.txt`:固定 `openpyxl` 版本。
- `docs/admin/10-商品目录接入接口.md`:补充安装、预检、真实提交和断点重跑说明。
- `/opt/cmautobuy/releases/e4385ac/`:新增生产发布目录并原子切换当前 Admin。
- `/etc/cmautobuy/admin.env`:增加目录来源与专用 Token,权限保持 `600`。
- 生产 MySQL `autobuy`:写入 11 个成功批次的商品目录数据和导入摘要。
## 验收结果
@@ -47,6 +58,11 @@ Excel 最大更新时间;相同文件和参数会产生完全相同的请求
| Token 只读取环境变量且不输出 | 通过 |
| dry-run、临时错误重试、业务错误停止和进度汇总可用 | 通过 |
| Python 自动化测试和 Admin Go 1.23 回归通过 | 通过 |
| 部署前生产数据库备份存在且 gzip 可读 | 通过;备份 1183828 字节,权限 `600` |
| 生产运行提交 `e4385ac` 对应二进制且 schema v10 完整 | 通过 |
| 生产目录 Token 受限保存且鉴权行为正确 | 通过;错误 Token 返回 `401 UNAUTHORIZED` |
| 11 个真实批次全部完成且无失败或进行中记录 | 通过;11 succeeded、0 failed、0 processing |
| 真实数据计数与三个工作簿一致 | 通过;2075 商品处理、33049 SKU、2075 关联 |
## 测试
@@ -56,7 +72,9 @@ Excel 最大更新时间;相同文件和参数会产生完全相同的请求
- 结果:三个真实样本解析成功,分别生成 5、5、1 个批次;最大请求分别为 1022285、794046、350890 字节,未发送请求。
- 执行的命令:在 `admin/` 使用 `GOTOOLCHAIN=go1.23.0` 执行 `go build ./...`、`go test ./... -count=1`、`go vet ./...`。
- 结果:全部通过。
- **没验证到的部分**:未使用真实 Token 调用生产写接口;未在生产数据库核对 11 个批次的落库计数和导入记录,须在备份后由负责人执行真实提交。
- 执行的操作:生产备份、Linux amd64 构建与哈希核对、上传和原子切换、systemd/HTTPS/鉴权/schema 检查、11 批真实提交及 MySQL 汇总查询。
- 结果:Admin、MySQL、Nginx 均 active;schema v10 只记录一次;11/11 批次成功。目录摘要为蝦皮商品新增 2057/更新 18、SKU 新增 33049、PDD 新增 1883/更新 114、关联新增 2075;失败计数为 0。
- **没验证到的部分**:未使用网页登录账号逐行人工查看全部导入商品;接口响应、导入摘要和数据库总数已核对,未执行备份恢复演练。
## 相关提交