跳到主要内容

版本、上线与回滚

查看状态与历史​

xdbapp status
xdbapp deployments
xdbapp inspect <deployment-id>

三个命令分别回答不同问题:

命令回答的问题
status当前项目关联了哪个 App,Production 是否健康
deployments这个 App 发布过哪些版本,各自处于什么状态
inspect某一个版本的详细信息、失败原因和地址是什么

打开应用​

xdbapp open
xdbapp open --preview <deployment-id>

open 只是在浏览器打开地址:默认打开当前 Production;带 --preview 时打开指定且仍可用的 Preview。它不会修改本地代码、重新启动历史版本或切换线上版本。

重新试用历史版本​

历史 Preview 已停止时,可先把仍在保留期内的版本重新挂到测试环境:

xdbapp preview <deployment-id> --yes
xdbapp open --preview <deployment-id>

preview 会替换当前 Preview 的指针和运行实例,因此需要 --yes 确认;不会改变 Production,也不会重新上传本地项目。超出保留期或制品已经清理的版本无法恢复。商家后台的“版本管理”也提供相同的预览恢复操作。

Promote 与 Rollback​

xdbapp promote <deployment-id> --yes
xdbapp rollback <deployment-id> --yes
  • promote:正常发布流程。把刚刚在 Preview 验收过的新版本设为 Production;
  • rollback:故障恢复流程。把仍在保留期内、过去运行过的历史版本重新设为 Production。

两者底层都在改变 Production 指向,但操作意图、允许的版本状态和审计记录不同,因此使用不同命令。

如果项目配置了 database.migrate_command,Promote 会先对 Production 数据库运行当前版本的 migration,成功后才启动并切换新 Production;Rollback 不重放历史 migration。

回滚时容器如何处理​

平台会从历史制品重新启动一个 Production 实例,完成健康检查后再替换当前实例。历史版本不需要一直占用一个运行中的容器。

数据库不会随代码回滚

回滚只恢复应用代码和对应运行配置,不会自动撤销数据库结构或业务数据变更。数据库迁移需要保持向前兼容;需要修复数据库时创建新的、向前执行的 migration,不要改写已经发布过的 migration。

在商家后台管理版本​

管理员和开发者可从“云应用 → 对应应用 → 版本管理”查看发布记录、恢复历史预览、正式上线或回滚。这里显示的是已经上传到平台的版本;本地尚未上传的修改不会出现。

出现版本已变化的提示时,刷新记录再选择目标,避免把旧页面中的版本覆盖到新正式版。发布与后台菜单如何配合,见后台管理与使用。