Evose
私有化

私有化 · 升级

升级流程 · 备份 · 回滚 · 兼容性

升级是高风险动作。按本流程做完每一步,出错就回滚。

升级前检查清单

必做
备份所有数据库(MySQL / PostgreSQL)
备份文件存储
阅读目标版本的 Changelog
阅读不兼容变更(若有)
在 staging 环境完整验证
选择业务低峰期
通知用户(如需停机)

备份

MySQL

docker compose exec mysql mysqldump \
  -u root -p --single-transaction --routines --triggers \
  evose > /backup/$(date +%F)-mysql.sql

PostgreSQL(知识库)

docker compose exec postgres pg_dump -U postgres -F c evose_kb \
  > /backup/$(date +%F)-pg.dump

文件

rsync -av /opt/evose/data/files/ /backup/$(date +%F)-files/

备份后做一次本地恢复演练

没有验证过的备份等于没有备份。

升级方式

Docker Compose

# 停服(如不接受零停机)
docker compose down
 
# 拉新版本
git -C evose-edition pull
# 或
tar -xzf evose-edition-NEW.tar.gz
 
# 启动
docker compose pull
docker compose up -d
 
# 看初始化(可能含数据库迁移)
docker compose logs -f evose-init

Kubernetes(Helm)

# 看新版本
helm search repo evose --versions
 
# 升级
helm upgrade evose evose/evose -n evose -f values.yaml --version <new>
 
# 看滚动情况
kubectl -n evose rollout status deploy/evose-api

数据库迁移

启动时 evose-init 自动跑 schema 迁移:

[init] applying migration 20260301_add_credit_balance
[init] applying migration 20260315_add_skill_tags
[init] migrations complete

大表迁移可能很慢

如果你的数据库 > 100GB,某些 ALTER TABLE 可能耗时几小时。先在 staging 测,评估时间窗。

验证

升级完做烟雾测试:

# 1. 健康端点
curl https://evose.example.com/health
 
# 2. 登录管理后台
# 3. 在工作台触发一个 Agent
# 4. 跑一次 Workflow
# 5. 看观测面板有数据
# 6. 模型平台测连接

回滚

如果升级后业务异常,立即回滚:

Docker Compose

docker compose down
git -C evose-edition checkout <旧标>
docker compose up -d
 
# 必要时恢复数据库
docker compose exec mysql mysql -u root -p evose < /backup/<DATE>-mysql.sql

Kubernetes

helm rollback evose -n evose

不兼容升级(主版本号变更)

跨主版本(如 1.x → 2.x)可能涉及:

  • 数据库 schema 大改
  • 配置项重命名 / 移除
  • API 字段变更

强制要求:

  1. 在 staging 完整跑一遍
  2. 阅读 Migration Guide(随版本发布)
  3. 安排正式停机窗口
  4. 准备明确的回滚预案

接下来

页面导航