跳转到主要内容

常规升级

docker compose pull && docker compose down && docker compose up -d
启动时后端自动跑数据库迁移。下面按版本号列出需要额外手动操作的迁移——只做你跨过的版本。

v4.1.x → v4.2.x(Qdrant → pgvector)

此区间字段向量从独立 Qdrant 改存主库 pgvector。从 v4.1.x 升级到 v4.2.x 需要:
1

换 pgvector 镜像

官方 postgres 镜像不带 pgvector 扩展,必须换(扩展由迁移脚本自动安装):
docker-compose.yaml
asktable-pg:
  image: pgvector/pgvector:pg17   # 原来是 postgres:17
2

删掉 Qdrant

对照 私有部署 最新 compose,删除 asktable_vdb 服务、VDB_ADDRESS/VDB_API_KEY 环境变量、qdrant_storage/qdrant_snapshots 卷。
3

拉起

docker compose pull && docker compose down && docker compose up -d
自动迁移并安装 pgvector 扩展。缺 asktable_workbook 库时按 私有部署 补建。
4

重建 Embedding

老数据源向量为空,进每个数据源页点 重建 Embedding 回填。

collation 版本警告

只有换了 PostgreSQL 镜像、底层 glibc 版本变化时才会遇到,判据是启动日志出现 collation version mismatch
  • 在原有 PostgreSQL 上自己装 pgvector 扩展、没换镜像 → 不触发,跳过本节。
  • 把旧镜像(如早期部署用的 postgres 镜像)换成 pgvector 镜像、且复用旧 postgres_data 卷 → 触发,按下面处理。
别只按提示刷版本号。glibc 版本不同会改变文本排序规则,旧文本索引与数据对不上,查询会静默漏行。必须先重建索引,再刷版本号。
docker compose exec asktable-pg psql -U asktable -d asktable -c "REINDEX DATABASE asktable;"
docker compose exec asktable-pg psql -U asktable -d asktable -c "ALTER DATABASE asktable REFRESH COLLATION VERSION;"
docker compose exec asktable-pg psql -U asktable -d postgres -c "ALTER DATABASE template1 REFRESH COLLATION VERSION;"
启用了 Workbook 就对 asktable_workbook 库做同样两步。数据可弃时更省事:docker compose down -v 删卷重建(生产勿用,会清空数据)。