前置条件
先备份,这是能回滚的前提:
-d asktable 换成 -d asktable_workbook。./asktable_data 里是上传文件和日志,直接复制目录即可。
操作步骤
1
拉新镜像
2
停服务并重建
3
确认版本和迁移结果
左下角头像 →「系统设置」→ 左侧「关于」→ 系统版本应显示目标版本;
docker compose logs asktable 里不应出现迁移报错。4
跨版本时补做手动迁移
对照下面按版本区间列出的项目,只做你跨过的那些。
v4.1.x → v4.2.x(Qdrant → pgvector)
这个区间里,字段向量从独立的 Qdrant 服务改存主库的 pgvector 扩展。从 v4.1.x 升到 v4.2.x 需要:1
换 pgvector 镜像
官方
postgres 镜像不带 pgvector 扩展,必须换成带扩展的镜像(扩展本身由迁移脚本自动安装):docker-compose.yaml
2
删掉 Qdrant
对照 私有部署(Docker) 的最新 compose,删掉
asktable_vdb 服务、VDB_ADDRESS 和 VDB_API_KEY 两个环境变量,以及 qdrant_storage、qdrant_snapshots 两个卷。3
拉起
asktable_workbook 库不存在时,按 私有部署(Docker) 补建。4
重建 Embedding
老数据源的字段向量是空的。逐个进数据源页,点顶栏「设置」→「索引维护」→「重建 Embedding」,随后提示重建已开始、完成后语义检索自动生效。
collation 版本警告
只有换了 PostgreSQL 镜像、底层 glibc 版本跟着变时才会遇到。判据是docker compose logs asktable-pg 或 docker compose logs asktable 里出现 collation version mismatch。
- 在原有 PostgreSQL 上自己装 pgvector 扩展、没换镜像 → 不触发,跳过本节。
- 把旧镜像(早期部署用的
postgres镜像)换成 pgvector 镜像、且复用旧postgres_data卷 → 触发,按下面处理。
asktable_workbook 做同样两步。数据可以丢弃时更省事:docker compose down -v 删卷重建,会清空全部数据,生产环境不要用。
关键约束
出问题怎么判断
下一步
- 私有部署(Docker) — 访问地址、升级命令与排障表
- 部署 AI 搜索(值索引) — 值索引与 Embedding 是两件事
- 数据源日常维护 — 重建索引、刷新元数据
- 部署总览 — 可选组件与上线顺序
