Admin:部署统一搜索清除按钮版本到生产服务器 #249

Open
opened 2026-08-15 17:52:37 +08:00 by ila · 1 comment
Owner

基本信息

  • 类型:部署
  • 父级大工单:#14
  • 所属 MVP / 版本:#15 / Admin 生产部署
  • 阶段:列表搜索清除按钮生产发布
  • 状态:待验收

要解决什么

生产 Admin 当前尚未包含 #248 的列表搜索清除按钮。需要把固定提交 d79e5c4 从隔离工作树构建为 Linux amd64 发布物,部署到 185.216.248.75,继续通过 https://buy.833729.com 提供服务。

做什么 / 不做什么

  • 做:
    • 从固定提交 d79e5c4 的隔离 worktree 构建,不包含主工作区未提交文件。
    • 使用固定 Go 1.23.0 执行 vet、build、test 和 Linux amd64 静态构建。
    • 切换前只读核对当前 release、schema v25、磁盘空间及 SYB、AI、档口入库码后台任务。
    • 安装不可变 release,复用 release 外的稳定配置、数据和密钥文件。
    • 在仅监听 127.0.0.1:18081 的隔离端口使用生产环境启动目标二进制,通过数据库自检后再切换。
    • 原子切换稳定二进制链接,核对哈希、systemd、监听、Nginx、本机与公网登录页。
  • 不做:
    • ���迁���或修改生产数据库,不新建数据库备份。
    • 不修改生产凭据、Nginx 业务配置或 Client。
    • 不触发顺运宝同步、档口入库码匹配/回写、AI 匹配、采集、采购、下单或付款。

怎么做

  1. 只读确认线上仍运行预期旧 release、schema v25,且后台任务没有运行中批次。
  2. 在系统临时目录建立 d79e5c4 detached worktree,完成固定 Go 1.23.0 验证及静态构建并记录 SHA-256。
  3. 上传暂存文件并核对本地、暂存、最终 release 的哈希、大小和 ELF 类型。
  4. 建立 /opt/cmautobuy/releases/d79e5c4/,只链接稳定 config.yaml 与 data。
  5. 目标二进制先在 127.0.0.1:18081 完成生产环境启动预检;再次确认后台任务为 0 后停止 systemd,原子切换并启动。
  6. 核对 schema 保持 v25、systemd active/enabled、只监听 127.0.0.1:18080、Nginx 和公网 HTTPS 正常。

预计只修改服务器 release 目录和稳定二进制链接;仓库仅新增部署归档。

验收标准

  • 发布物只来自固定提交 d79e5c4,固定 Go 1.23.0 验证通过。
  • 切换前运行中的 SYB、AI 和档口入库码任务均为 0。
  • 本地、上传暂存和最终 release 的 SHA-256 一致。
  • systemd active/enabled,Admin 只监听 127.0.0.1:18080。
  • 生产 schema 保持 v25,没有执行数据库迁移或数据写入。
  • 本机与公网根路径、登录页正常,目标 release 包含 #248 的模板和测试结果。
  • 配置、密钥和业务数据未被非预期修改,未触发任何真实业务动作。
  • 部署结果、未验证项和回退边界写入工单及本地归档。

怎么验证

从隔离 worktree 的 admin/ 执行:

$env:GOTOOLCHAIN='go1.23.0'
go vet ./...
go build ./...
go test ./... -count=1

服务器执行只读状态查询、sha256sum、stat、file、独立端口启动预检、readlink、systemctl、ss、nginx -t、journalctl、schema 查询和本机/公网 curl。

风险和回退

  • 重启可能中断真实后台任务,因此切换前至少两次检查运行中任务为 0。
  • 本次没有 schema 变化,前一 release 7736ab7 同样支持 v25;新服务启动或健康检查失败时可原子切回前一 release,不需要恢复数据库。
  • 若切换后已经有新业务请求,仍只回切应用二进制,不覆盖数据库或业务数据。
## 基本信息 - 类型:部署 - 父级大工单:#14 - 所属 MVP / 版本:#15 / Admin 生产部署 - 阶段:列表搜索清除按钮生产发布 - 状态:待验收 ## 要解决什么 生产 Admin 当前尚未包含 #248 的列表搜索清除按钮。需要把固定提交 `d79e5c4` 从隔离工作树构建为 Linux amd64 发布物,部署到 `185.216.248.75`,继续通过 `https://buy.833729.com` 提供服务。 ## 做什么 / 不做什么 - 做: - 从固定提交 `d79e5c4` 的隔离 worktree 构建,不包含主工作区未提交文件。 - 使用固定 Go 1.23.0 执行 vet、build、test 和 Linux amd64 静态构建。 - 切换前只读核对当前 release、schema v25、磁盘空间及 SYB、AI、档口入库码后台任务。 - 安装不可变 release,复用 release 外的稳定配置、数据和密钥文件。 - 在仅监听 `127.0.0.1:18081` 的隔离端口使用生产环境启动目标二进制,通过数据库自检后再切换。 - 原子切换稳定二进制链接,核对哈希、systemd、监听、Nginx、本机与公网登录页。 - 不做: - ���迁���或修改生产数据库,不新建数据库备份。 - 不修改生产凭据、Nginx 业务配置或 Client。 - 不触发顺运宝同步、档口入库码匹配/回写、AI 匹配、采集、采购、下单或付款。 ## 怎么做 1. 只读确认线上仍运行预期旧 release、schema v25,且后台任务没有运行中批次。 2. 在系统临时目录建立 `d79e5c4` detached worktree,完成固定 Go 1.23.0 验证及静态构建并记录 SHA-256。 3. 上传暂存文件并核对本地、暂存、最终 release 的哈希、大小和 ELF 类型。 4. 建立 `/opt/cmautobuy/releases/d79e5c4/`,只链接稳定 `config.yaml` 与 `data`。 5. 目标二进制先在 `127.0.0.1:18081` 完成生产环境启动预检;再次确认后台任务为 0 后停止 systemd,原子切换并启动。 6. 核对 schema 保持 v25、systemd active/enabled、只监听 `127.0.0.1:18080`、Nginx 和公网 HTTPS 正常。 预计只修改服务器 release 目录和稳定二进制链接;仓库仅新增部署归档。 ## 验收标准 - [x] 发布物只来自固定提交 `d79e5c4`,固定 Go 1.23.0 验证通过。 - [x] 切换前运行中的 SYB、AI 和档口入库码任务均为 0。 - [x] 本地、上传暂存和最终 release 的 SHA-256 一致。 - [x] systemd active/enabled,Admin 只监听 `127.0.0.1:18080`。 - [x] 生产 schema 保持 v25,没有执行数据库迁移或数据写入。 - [x] 本机与公网根路径、登录页正常,目标 release 包含 #248 的模板和测试结果。 - [x] 配置、密钥和业务数据未被非预期修改,未触发任何真实业务动作。 - [x] 部署结果、未验证项和回退边界写入工单及本地归档。 ## 怎么验证 从隔离 worktree 的 `admin/` 执行: ```powershell $env:GOTOOLCHAIN='go1.23.0' go vet ./... go build ./... go test ./... -count=1 ``` 服务器执行只读状态查询、`sha256sum`、`stat`、`file`、独立端口启动预检、`readlink`、`systemctl`、`ss`、`nginx -t`、`journalctl`、schema 查询和本机/公网 `curl`。 ## 风险和回退 - 重启可能中断真实后台任务,因此切换前至少两次检查运行中任务为 0。 - 本次没有 schema 变化,前一 release `7736ab7` 同样支持 v25;新服务启动或健康检查失败时可原子切回前一 release,不需要恢复数据库。 - 若切换后已经有新业务请求,仍只回切应用二进制,不覆盖数据库或业务数据。
Author
Owner

实施完成,待用户验收

  • 生产稳定链接已从 7736ab7 原子切换到固定提交 d79e5c4。
  • 发布物 28,012,696 字节,SHA-256:0c550bda3d6baf04a190877a2a4a22ad2c3ec55a7d6922dc43d8e9f25c05567d;本地、上传暂存和最终 release 一致。
  • 固定 Go 1.23.0 的 vet、build、全量测试通过。第一次命令误在仓库根目录执行,在编译前因找不到 Go 模块退出;改到隔离工作树 admin/ 后完整重跑并通过。
  • 目标二进制先在 127.0.0.1:18081 完成生产环境启动预检,再切换到 127.0.0.1:18080。
  • systemd active/enabled,Nginx 检查通过;本机和公网根路径 303、登录页 200。
  • MySQL 8.4.8、schema v25;部署前后 SYB、AI、档口入库码活动任务均为 0。本次未迁移数据库,也没有额外生成数据库备份。
  • 最终二进制内的 5 个清除入口模板标识均存在。
  • 未触发顺运宝同步、AI 匹配、档口入库码匹配/回写、采集、采购、下单或付款。
  • 归档:docs/task/249-admin部署统一搜索清除按钮版本.md
  • 归档提交:1927e3e

回退:前一 7736ab7 release 继续保留且同样支持 schema v25,如需回退只切应用二进制,不覆盖数据库。未使用生产账号逐页人工点击清除入口。

## 实施完成,待用户验收 - 生产稳定链接已从 `7736ab7` 原子切换到固定提交 `d79e5c4`。 - 发布物 28,012,696 字节,SHA-256:`0c550bda3d6baf04a190877a2a4a22ad2c3ec55a7d6922dc43d8e9f25c05567d`;本地、上传暂存和最终 release 一致。 - 固定 Go 1.23.0 的 vet、build、全量测试通过。第一次命令误在仓库根目录执行,在编译前因找不到 Go 模块退出;改到隔离工作树 `admin/` 后完整重跑并通过。 - 目标二进制先在 `127.0.0.1:18081` 完成生产环境启动预检,再切换到 `127.0.0.1:18080`。 - systemd active/enabled,Nginx 检查通过;本机和公网根路径 303、登录页 200。 - MySQL 8.4.8、schema v25;部署前后 SYB、AI、档口入库码活动任务均为 0。本次未迁移数据库,也没有额外生成数据库备份。 - 最终二进制内的 5 个清除入口模板标识均存在。 - 未触发顺运宝同步、AI 匹配、档口入库码匹配/回写、采集、采购、下单或付款。 - 归档:`docs/task/249-admin部署统一搜索清除按钮版本.md` - 归档提交:`1927e3e` 回退:前一 `7736ab7` release 继续保留且同样支持 schema v25,如需回退只切应用二进制,不覆盖数据库。未使用生产账号逐页人工点击清除入口。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#249