docs: 归档任务 #249

This commit is contained in:
chengma
2026-08-15 18:00:21 +08:00
parent d79e5c4e0a
commit 1927e3edb6
@@ -0,0 +1,82 @@
# 249 Admin:部署统一搜索清除按钮版本到生产服务器
- 类型:部署
- 父级大工单:#14
- 所属 MVP / 版本:#15 / Admin 生产部署
- 状态:已完成,待用户验收
- 日期:2026-08-15
- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/249
## 背景与目标
生产 Admin 原来运行 `7736ab7`,尚未包含 #248 的列表搜索清除按钮。本任务把固定提交
`d79e5c4` 隔离构建并发布到 `185.216.248.75`,继续通过
`https://buy.833729.com` 提供服务。
## 最终方案
- 在 Windows 系统临时目录建立 `d79e5c4` detached worktree,与主工作区未提交的
Client 文件隔离。第一次验证命令误在仓库根目录执行,Go 在编译前即因找不到模块退出;
随后改到隔离工作树的 `admin/` 目录,使用固定 Go 1.23.0 完成 vet、全量构建、全量测试
和 Linux amd64 静态构建。
- 上传后核对本地、暂存和最终 release 的 SHA-256、文件大小和 ELF 类型;正式 release
继续链接 `/opt/cmautobuy/config.yaml` 和 `/opt/cmautobuy/data`,没有复制或输出凭据。
- 部署前确认生产仍运行 `7736ab7`,MySQL 8.4.8、schema v25,SYB 同步、AI 匹配、
档口入库码排队/回写均为 0。目标二进制先在不对公网开放的 `127.0.0.1:18081`
使用生产环境启动,数据库自检和登录页检查通过后才进入切换。
- 再次确认后台任务为 0,停止 systemd 后原子切换稳定二进制链接并启动。发布后核对
release 哈希、5 个清除入口模板标识、schema、后台任务、systemd、监听、Nginx、
本机和公网 HTTPS。
- 本次代码不包含 schema 变化,也不主动写业务数据,因此没有额外生成数据库备份。
前一 release `7736ab7` 同样支持 v25,发生启动或页面健康检查失败时可以只回切应用。
- 部署过程没有触发顺运宝同步、档口入库码匹配/回写、AI 匹配、采集、采购、下单或付款。
## 改了哪些
- `/opt/cmautobuy/releases/d79e5c4/`:新增并启用目标 Admin release。
- `/opt/cmautobuy/cmautobuy-admin`:稳定链接从 `7736ab7` 原子切换到 `d79e5c4`。
- `docs/task/249-admin部署统一搜索清除按钮版本.md`:新增本次部署归档。
前一 `7736ab7` release 继续保留,可在不恢复数据库的情况下回切。服务器上传暂存文件和
预检日志已删除,本地 detached worktree 已移除。已校验的 Linux 二进制暂时保留在系统
临时目录 `cmautobuy-deploy-249-20260815-175451/artifacts`,不在仓库中且不含配置或数据。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| 发布物只来自固定提交 `d79e5c4`,固定 Go 1.23.0 验证通过 | 通过 |
| 切换前 SYB、AI 和档口入库码活动任务均为 0 | 通过(两次核对) |
| 本地、上传暂存和最终 release 哈希一致 | 通过 |
| systemd active/enabled,只监听 `127.0.0.1:18080` | 通过 |
| schema 保持 v25,未执行数据库迁移或业务写入 | 通过 |
| 本机、公网页面及目标模板标识正常 | 通过 |
| 配置、密钥和业务数据保持,未触发真实业务动作 | 通过 |
发布结果:
- 目标二进制:28,012,696 字节,SHA-256
`0c550bda3d6baf04a190877a2a4a22ad2c3ec55a7d6922dc43d8e9f25c05567d`。
- 新服务 PID 为 `31437`,启动时间 `2026-08-15 17:58:09 CST`;启动日志中的数据库
就绪标识存在,fatal、panic 和迁移错误均为 0。
- MySQL 服务端为 8.4.8,schema 为 v25;发布后的 SYB、AI 和档口入库码活动任务均为 0。
- 本机根路径 303、登录页 200;公网根路径 303、登录页 200;Nginx 配置检查通过。
- 发布物中蝦皮、PDD、采集采购、客户端和用户管理的 5 个清除链接标识全部存在。
## 测试
- 执行的命令:
- 隔离 worktree:`GOTOOLCHAIN=go1.23.0 go vet ./...`、`go build ./...`、
`go test ./... -count=1`
- `GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags='-s -w'`
- 上传前后 `sha256sum`、`stat`、`file`
- 独立端口生产环境启动预检、生产运行态只读 SQL
- `readlink`、`systemctl`、`ss`、`nginx -t`、`journalctl`、本机和公网 `curl`
- 在最终二进制中核对 5 个清除入口模板标识
- 结果:固定 Go 1.23.0 验证、静态构建、启动预检、切换及全部发布后检查通过。
- **没验证到的部分**:未使用生产账号登录后逐个点击 5 个清除入口;未触发真实同步、
AI 匹配、档口入库码匹配/回写、采集、采购、下单或付款;未实际执行应用回切。
## 相关提交
- `d79e5c4`:本次生产目标代码基线。