Files
MemRelay/projects/d44c219a-0b31-4de1-b160-323eb34a4c6a/Checkpoint 2026-09-19 18-59-41 UTC [5820f40be0].md
T

51 lines
4.8 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.
---
title: Checkpoint 2026-09-19 18:59:41 UTC [5820f40be0]
type: checkpoint
permalink: main/projects/d44c219a-0b31-4de1-b160-323eb34a4c6a/checkpoint-2026-09-19-18-59-41-utc-5820f40be0
stable_id: da61a1a1-0b56-4404-84ad-50413532a1ed
scope: project
project_id: d44c219a-0b31-4de1-b160-323eb34a4c6a
memory_type: checkpoint
status: active
revision: 1
restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2
created_at: '2026-09-23T15:06:39.648231+00:00'
updated_at: '2026-09-23T15:06:39.648357+00:00'
tags:
- production
- deployment
- backup
- pm2
- handoff
- verified
---
# Artveris 正式环境升级完成(用户明确授权)
## 当前版本与运行状态
- 2026-09-20 Asia/Shanghai 02:51:20—02:51:31 完成约11秒切换,正式 https://art.qclh.xyz 已部署 main/dev 提交 c5c0168e4cc5aae28f802b69dd60ae1dd9bbb0d4,包含消费者按需证书、进度弹窗、短文本及此前全部改动。
- 正式目录 /www/wwwroot/artveris,PM2 项目 server,Node /www/server/nodejs/v24.18.0/bin/node,production、fork单实例、autorestart=true、watch=false。核验时PID247323,运行超过7分钟无异常重启(restart_time=0)。pm2 save已成功;pm2-root systemd启动服务enabled/active,dump中的脚本路径与生产环境变量已验证。
- 本地当前dev,与origin/dev一致,main也同一提交,工作区干净。本次没有新的代码改动提交。之前“未部署线上”的检查点已由本次部署状态替代。
## 如何保障数据
- 先只读核对实际PM2目录、数据库MySQL5.7.40、迁移状态、依赖版本和空闲空间。原4条迁移checksum与新包一致,19项后台任务均SUCCESS,5701条凭据均ONCHAIN,没有正在处理的业务任务。
- 从main git archive制作隔离源码,在独立Docker生产builder编译,用现有build.py的打包函数生成非Docker升级包;未在本地watch容器中运行生产构建。升级包不含.env、媒体或生产配置。
- 在服务器独立目录提前安装生产依赖和生成Prisma客户端,验证sharp/Prisma可加载,生产服务继续在线。
- 原代码连完整node_modules/.env、PM2运行/启动dump、项目Nginx配置先备份。停Artveris后再导出最终数据库、storage与backups,然后移动新旧代码目录;保持根.env、storage、backups、ecosystem及宝塔绑定不变。未重启或修改其他服务、MySQL、Redis、Nginx或PM2守护进程。
- 应用3条新增迁移(证书字段、移除旧每日限额、移除旧开关),数据库共7条迁移成功。切换前后比较24张业务表所有原字段的有序行SHA256以及文件清单:一致;46个媒体文件、.env、ecosystem、Nginx哈希一致。数据包括作品记录7、追溯码6698、凭据5701、查询记录483、用户1。
## 备份和回滚
- 服务器受保护目录 /www/upgrade/artveris-c5c0168-20260920/backup/(目录700、备份文件600)。最终database-final.sql.gz、media-and-backups.tar.gz、code-and-config.tar.gz、SHA256SUMS、snapshot-before/after.json、PM2和Nginx快照。
- previous/保留可直接恢复的上版代码与完整依赖,不需要联网重新安装。rollback-code.sh位于该升级目录根;仅核对当前c5c0168版本后人工执行,不要在正常状态运行。
- 本次迁移向后兼容,代码回滚保留数据库新增列和升级后数据,不自动回灌旧库造成数据丢失。完整SQL备份另外保留供灾难恢复。
- 核心备份另外下载到本机E:/code/artveris/.deploy/production/,SHA256对照服务器全部一致。初次备份在无网络隔离MySQL容器恢复并演练迁移通过,最终SQL也再单独恢复成功(6698/5701/483核对)。临时恢复容器及明文中间SQL已清理。服务器临时数据库连接凭据client.cnf已清理。
- 升级报告两端均保存:本机.deploy/production/UPGRADE-REPORT.md;服务器升级目录UPGRADE-REPORT.md。脚本/日志/备份不进入Git。
## 上线验证
- 370个部署运行文件匹配发布manifest;公网HTTPS健康、安装状态、前后台及引用静态资源10项检查通过。
- 正式短链正确302到https://art.qclh.xyz/trace,未带入本地127.0.0.1或测试配置;正式tianheEnv=production与接口地址保持原值。
- 只读证书状态接口在线,查询实物返回NONE;5701条原凭据默认NONE,没有自动批量补证,没有主动调用正式付费存证/出证接口。
- 后续以本地dev继续开发;线上升级仍需用户安排。现有scripts/upgrade-remote-steps.sh缺少pipefail、完整媒体备份校验和自动回滚,不能直接把其“压缩包非空/健康200”当作无损验证。本次使用升级目录内经过检查的准备、切换、逐表/逐文件校验和回滚脚本。
## 待办
- 当前升级无未解决故障。等用户线上体验反馈。后续如需验证付费生成,不默认点击正式“查看证书”制造成本,测试优先免费测试环境。