私有部署的升级本身只有三条命令,但跨过某些版本区间时,光换镜像不够——向量存储位置和文本排序规则都需要手动补一步。这一页先给备份和常规升级,再按版本区间列出额外动作,最后是判断升级做没做干净的观测点。

前置条件

先备份,这是能回滚的前提:
启用了工作簿就再备一份,把 -d asktable 换成 -d asktable_workbook./asktable_data 里是上传文件和日志,直接复制目录即可。

操作步骤

1

拉新镜像

2

停服务并重建

容器启动时会先跑一遍数据库结构迁移,不需要手动执行 SQL。
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_ADDRESSVDB_API_KEY 两个环境变量,以及 qdrant_storageqdrant_snapshots 两个卷。
3

拉起

启动时自动迁移并安装 pgvector 扩展。日志提示 asktable_workbook 库不存在时,按 私有部署(Docker) 补建。
4

重建 Embedding

老数据源的字段向量是空的。逐个进数据源页,点顶栏「设置」→「索引维护」→「重建 Embedding」,随后提示重建已开始、完成后语义检索自动生效。

collation 版本警告

只有换了 PostgreSQL 镜像、底层 glibc 版本跟着变时才会遇到。判据是 docker compose logs asktable-pgdocker compose logs asktable 里出现 collation version mismatch
  • 在原有 PostgreSQL 上自己装 pgvector 扩展、没换镜像 → 不触发,跳过本节。
  • 把旧镜像(早期部署用的 postgres 镜像)换成 pgvector 镜像、且复用旧 postgres_data 卷 → 触发,按下面处理。
别只按提示刷版本号。glibc 版本不同会改变文本排序规则,旧文本索引与新排序规则对不上,查询会静默漏行。必须先重建索引,再刷版本号。
启用了工作簿就对 asktable_workbook 做同样两步。数据可以丢弃时更省事:docker compose down -v 删卷重建,会清空全部数据,生产环境不要用。

关键约束

出问题怎么判断

下一步