Files
cmautobuy/docs/task/249-admin部署统一搜索清除按钮版本.md
T
2026-08-15 18:00:21 +08:00

83 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`:本次生产目标代码基线。