指南 04

升级
无需提心吊胆。

把数据库、存储卷、环境变量和 Compose 配置视为同一个发布单元。先备份,只迁移一次,验证通过后再让工作恢复。

阅读约 9 分钟更新于 2026 年 10 月 23 日自托管

升级之前

阅读版本发布说明,检查是否有新的环境变量、Compose profile、迁移或存储操作。对于较重要的版本,请安排一段空闲时段,避免智能体在切换期间领取或写入工作。

  • 导出一份 PostgreSQL 备份。
  • 为 artifact 存储卷做快照或复制一份。
  • 安全地保存当前的 .env 和 Compose 配置。
  • 记下当前部署的镜像标签。
  • 确认备份可以正常读取。

使用更新脚本

通过一行命令安装的实例都自带更新脚本。在安装目录中运行它(默认为 ~/emperorclaw)。它会拉取新的预构建镜像并重建服务。

bash scripts/update.sh --docker

# Windows PowerShell
.\scripts\update.ps1 -Docker

如果要手动操作,拉取镜像并重建服务即可。整个过程不涉及 Git 检出或本地构建:

docker compose pull
docker compose up -d

源码安装(用 Node.js 构建的 Git 检出)使用不带 --docker 的 ./scripts/update.sh。

数据库迁移

应用会在启动时执行已注册的迁移。EmperorClaw 的版本迁移都设计为增量式的:只会新增表、列或索引,不会删除已有的业务数据。在生产环境中,请不要用 drizzle-kit push 取代这一流程。

观察启动日志,直到迁移完成。如果某个迁移失败,请先停下来排查,不要反复重启所有服务。

验证清单

  1. 确认每个容器都健康且运行稳定。
  2. 打开仪表盘,检查显示的版本号。
  3. 打开一个已有的客户、项目、任务和 Company Brain 笔记。
  4. 下载一个已有的 artifact,并验证其内容。
  5. 给某个智能体发一条测试消息,确认它的回复出现在正确的线程中。
  6. 检查各项集成和更新横幅。

回滚

如果新版本无法安全运行,请停止服务,恢复与之匹配的数据库和存储备份,恢复之前的 Compose 配置,然后启动之前的镜像标签。只回滚镜像、却保留已迁移的状态,并不是完整的恢复方案。

每个版本都会发布为独立的镜像标签。在 docker-compose.yml 中固定上一个版本(app 服务默认使用 :latest),然后拉取并重建:

# docker-compose.yml, service "app":
#   image: ghcr.io/emperorclaw/emperorclaw:v0.8.103
docker compose pull app
docker compose up -d app

准备再次升级时,把这一行改回 :latest 即可。

0.8.0 版本的特别说明

0.8.0 版本新增了存储镜像的数据库结构和真实的文件系统目录布局。在常规迁移完成后,先预览存储对齐,然后在启用 Google Drive 之前执行它:

docker compose exec app npm run storage:reconcile
docker compose exec app npm run storage:reconcile -- --apply

该命令是幂等的,并会保留已有的 artifact ID。Google Drive 仍然是可选的;未启用其 Compose profile 的安装会继续使用常规的存储路径。

上一篇← 智能体与 MCP下一篇桌面显示屏 →