实例升级
1. 升级说明
Docker Compose 部署方式因架构简单,部署方式简洁,因此升级操作较其他方式也容易很多。
大多为镜像和少量配置的更新。
⚠️ 升级前必读:破坏性变更
每次升级前请务必查阅 csghub-omnibus Release Notes,确认当前目标版本是否引入了破坏性变更(Breaking Changes)。
当前已知破坏性变更示例:
| 版本范围 | 破坏性变更 | 处理方式 |
|---|---|---|
v2.3.0 及以上 | 内置 PostgreSQL 由 15.x 升级到 16.x | 升级前必须执行 pg_dumpall 数据导出,升级后导入;否则容器启动后会因数据目录不兼容而失败 |
v2.0.0-ce/ee | Dataflow 日志存储由 MongoDB 切换到 PostgreSQL | 升级后需手动执行 Dataflow 数据库迁移 |
2. 前置操作
v2.3.0
PostgreSQL 数据库升级(15.x → 16.x)
v2.3.0 将内置 PostgreSQL 数据库从 15.17 升级至 16.14。PostgreSQL 大版本升级不兼容旧版本的数据文件,需通过逻辑备份与恢复(pg_dumpall / psql)完成升级。
1. 升级前准备(备份 v2.2.0 数据库)
在拉取新镜像前,进入容器停止所有应用服务,仅保留 PostgreSQL,然后导出全量数据。核心原则:备份与导入前后都需停止所有外部服务对 PostgreSQL 的写入。
-
停止除 PostgreSQL 外的所有服务:
# 停止所有服务docker exec -it csghub-omnibus csghub-ctl stop# 仅启动 PostgreSQLdocker exec -it csghub-omnibus csghub-ctl start postgresql -
导出全量数据库:
docker exec -it csghub-omnibus su - postgres -c "pg_dumpall --clean --if-exists -U csghub -f /tmp/all_dbs.sql" -
将备份文件拷贝到宿主机:
docker cp csghub-omnibus:/tmp/all_dbs.sql ./all_dbs.sql -
停止并移除旧容器:
docker compose down