升级与回滚
Crest 版本升级、验证、回滚和上线观察流程。
升级 Crest 前要把“能否成功升级”和“失败后如何退回”同时设计好。正式环境不建议在没有备份、没有验证、没有回滚方案的情况下直接替换版本。
升级不是单纯替换镜像或安装包。它可能涉及数据库迁移、前端资源变化、权限模型变化、内置示例变化和配置项变化。越是正式环境,越要把升级当成一次可回溯的变更处理。
升级后第一轮页面验证建议从工作台开始。工作台能正常打开,说明登录、菜单、基础资源统计和前端静态资源已经通过初步检查。

随后继续验证数据源、数据集、仪表盘、大屏、分享、导出和审计日志,不能只停留在“能登录”。
升级前检查
| 项目 | 检查内容 |
|---|---|
| 版本说明 | 阅读目标版本的变更、兼容性和已知问题 |
| 当前版本 | 记录当前 Crest 版本、镜像版本和安装包来源 |
| 数据库备份 | 完成升级前完整备份 |
| 配置备份 | 保存 Compose、环境变量、Secret、证书、Ingress |
| 加密配置 | 记录 CREST_CRYPTO_MODE、AES Key、AES IV;国密模式还要记录 SM4 Key |
| 存储空间 | 确认镜像、备份、导出文件和日志空间充足 |
| 测试环境 | 优先在测试环境验证升级流程 |
| 业务窗口 | 通知用户暂停编辑、导出和数据集同步 |
升级前建议把当前环境状态截图或记录下来:版本号、服务状态、数据库备份文件、当前镜像、配置文件、管理员登录结果和关键页面访问结果。这样升级后出现问题时,可以明确是升级引入还是升级前已存在。
推荐升级流程
在测试环境验证
使用生产备份的脱敏副本验证升级,记录耗时、日志和兼容问题。
冻结生产变更
升级前暂停资源编辑、批量导出、数据集缓存任务和配置变更。
备份生产环境
备份数据库、配置、运行目录、证书、密钥和当前镜像版本。
执行升级
替换安装包或镜像,按部署方式执行升级命令。
观察启动日志
重点关注数据库迁移、连接池、后台任务和错误日志。
完成功能验证
按上线检查清单验证登录、权限、数据源、数据集、仪表盘、大屏、分享和导出。
开放用户访问
验证通过后通知用户恢复使用,并保留升级观察窗口。
升级过程中不要同时做无关配置变更。例如不要一边升级版本,一边改域名、SSO、数据库密码、加密模式或权限模型。多个变更叠加会让问题定位变得困难。
从旧版本升级到 v1.5.7 时,如果不需要国密能力,继续保持 CREST_CRYPTO_MODE=standard 即可;用户操作流程不需要调整。如果项目需要启用 sm-suite,应先在测试环境验证密钥、登录、数据源、数据集、仪表盘、大屏、分享、导出和 SSO,再安排生产维护窗口。
v1.5.7 的升级路径需要按来源版本区分:
| 来源版本 | 升级动作 |
|---|---|
| v1.5.6 | 替换 crest-service:v1.5.7 和 crest-web:v1.5.7,不需要执行新增升级 SQL |
| v1.5.5 | 替换 crest-service:v1.5.7 和 crest-web:v1.5.7,不需要执行新增升级 SQL |
| v1.5.4 | 先备份元数据库和运行目录,执行 upgrade-sql/v1.5.4_to_v1.5.5.sql,再替换 v1.5.7 前后端镜像 |
| 早期开发版本 | 不建议直接原地升级,优先导出业务资源后在全新环境导入 |
v1.5.6 到 v1.5.7 是数据集缓存、公开分享、API 数据源和数据源校验维护版本,没有数据库结构、系统参数或初始化数据变更。v1.5.4 到 v1.5.5 会写入账号安全相关系统参数,必须执行对应升级 SQL。
升级当天建议准备一张操作记录表,按时间记录命令、输出、截图和结论。出现问题时,这张表比事后回忆更可靠。
升级后验证清单
| 模块 | 验证内容 |
|---|---|
| 登录 | 本地账号、SSO 账号、密码修改 |
| 权限 | 普通用户菜单、资源可见范围 |
| 数据源 | 连接测试、表结构读取 |
| 数据集 | 预览、字段设置、缓存同步、行列权限 |
| 图表 | 查询、筛选、排序、钻取、明细导出 |
| 仪表盘 | 页面打开、联动、跳转、导出 |
| 数据大屏 | 预览、全屏、图片、字体、动效 |
| 数据门户 | 普通用户只读访问、收藏、最近使用、全屏和刷新 |
| 分享 | 链接访问、密码、有效期 |
| 导出中心 | 任务提交、下载、删除 |
| 审计日志 | 登录、配置、资源操作是否记录 |
升级到 v1.5.7 后,建议额外验证:
- MySQL 数据源数据集可切换直连和缓存读取。
- 缓存支持立即更新、定时更新、全量更新和增量更新。
- 缓存状态能展示最近执行状态、缓存可用状态、源数据行数、缓存行数和一致性校验结果。
- 已登录用户访问
/link/:uuid仍进入分享展示页。 - API 数据源启用 JsonPath 后能按指定节点解析字段。
验证时建议至少使用两个账号:管理员账号和普通业务账号。管理员能打开页面,不能证明普通用户的权限、菜单和资源均正常。
验证截图建议保留登录页、工作台、系统参数、一个数据源、一个数据集、一个仪表盘、一个大屏预览、导出中心和审计日志。截图不需要包含敏感数据,但要能证明关键链路已经访问过。
回滚策略
回滚不能只替换为旧版本安装包。如果升级过程执行了数据库迁移,必须同时考虑数据库结构和数据。
| 情况 | 处理 |
|---|---|
| 服务启动失败,数据库未迁移 | 恢复旧镜像或旧安装包,使用原配置启动 |
| 服务启动失败,数据库已迁移 | 停止服务,恢复升级前数据库备份和配置 |
| 功能异常但数据可访问 | 评估是否先禁用受影响功能,再安排回滚 |
| 升级后用户已产生新数据 | 谨慎回滚,先评估新数据是否会丢失 |
回滚前确认数据影响
如果升级后已经有用户编辑仪表盘、数据集或系统配置,直接恢复升级前数据库会丢失这些变更。回滚前必须得到业务确认。
升级观察期
升级完成后的 24 到 72 小时,建议重点观察:
- 登录失败次数是否异常。
- 数据源连接是否出现超时。
- 图表查询是否明显变慢。
- 导出失败率是否上升。
- 后台任务是否积压。
- 日志中是否出现重复异常。
- 用户是否反馈页面空白、权限异常或资源丢失。
升级记录建议保存到运维台账,包括版本号、操作人、时间、命令、备份位置、验证结果和遗留问题。
升级沟通模板
正式环境升级前,可以提前向业务方说明:
| 项目 | 内容 |
|---|---|
| 升级窗口 | 预计开始和结束时间 |
| 影响范围 | 是否影响登录、编辑、导出、同步任务和分享访问 |
| 用户动作 | 升级前保存编辑内容,暂停批量导出和大屏改版 |
| 回滚条件 | 例如无法登录、数据查询异常、关键页面不可用 |
| 验证负责人 | 管理员、业务代表和运维负责人 |
升级完成后再发一次结果通知,说明版本、验证结果、已知问题和观察期安排。