news 2026/9/7 8:57:35

WeKnora升级指南:旧版本平滑迁移到0.1.4的完整路线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
WeKnora升级指南:旧版本平滑迁移到0.1.4的完整路线

WeKnora升级指南:旧版本平滑迁移到0.1.4的完整路线

【免费下载链接】WeKnoraOpen-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.项目地址: https://gitcode.com/GitHub_Trending/we/WeKnora

你正在用 WeKnora 做文档问答,手头版本又停在旧版?这次 WeKnora 版本迁移到 0.1.4 值得动手:多知识库操作让你按业务线拆分知识集合,租户管理把多组织隔离落到系统里,同时 0.1.3 引入的认证加固还修掉了 XSS 与 CSP 策略两个安全漏洞。本文带你判断该走哪条升级路线,备份、迁移、验证、回滚一步步走通。

升级路线怎么选

先别急着跑命令,确认一下你的源版本。WeKnora 0.1.4 升级是否要绕道,取决于你现在的版本:

你当前的版本到 0.1.4 怎么走说明
0.1.3直接升级一条命令的数据库迁移即可
0.1.2先升 0.1.3,再升 0.1.40.1.3 改了安全架构,必须经过
0.1.0先升 0.1.3,再升 0.1.4同上

判断不了版本?跑一下迁移脚本自带的版本检查(下面第 2 步有命令),或直接翻 CHANGELOG.md 对照你仓库里的提交记录。

动手前的数据保底

⚠️ 认证机制在 0.1.3 起才引入,旧库升级后所有请求都要过登录校验。备份没做完之前,别动生产环境。

升级要碰数据库结构、二进制和前端三样东西,任何一样出错都可能让你回不去。所以先用三分钟做备份:

  1. 导数据库快照。一条命令把 PostgreSQL 完整导出成 SQL 文件,这是回滚时最值钱的东西:
    pg_dump -U ${DB_USER} -h ${DB_HOST} -p ${DB_PORT} ${DB_NAME} > backup_$(date +%F).sql
  2. 拷知识库文件。原始文档都躺在knowledge目录里,向量重建慢但文件丢了就没法重建:
    tar czf kb_backup.tar.gz /data/weknora/knowledge
  3. 存一份配置config/config.yaml里是你手填的模型、存储和认证参数:
    cp config/config.yaml /root/config.yaml.bak

升级失败怎么回滚?顺序和备份正好相反:先停掉服务,把备份 SQL 灌回数据库,再把代码切回旧版本重新部署。

systemctl stop weknora-server weknora-docreader psql -U ${DB_USER} -d ${DB_NAME} -f backup_$(date +%F).sql git checkout <旧版本tag> && make build

只要数据库快照是升级前导出的,回滚后数据不会少一行;知识库目录如果动过,同样从kb_backup.tar.gz解回原位。

逐步执行:从拉代码到上线

整条升级链路是:更新代码 → 迁移数据库 → 改配置 → 重建前端。每步之间都有明确的产出,中途失败时你知道问题出在哪一段。

1. 更新代码。先把服务停在低峰期,然后拉到最新版本:

git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora git pull origin main

2. 迁移数据库。这是 WeKnora 数据库迁移的核心一步。仓库自带的 scripts/migrate.sh 会按migrations/versioned/里的编号文件顺序执行,支持up/down/version等模式。建议先看一眼当前停在哪个版本:

export DB_HOST=localhost DB_PORT=5432 export DB_USER=postgres DB_PASSWORD=postgres DB_NAME=WeKnora ./scripts/migrate.sh version ./scripts/migrate.sh up

💡 走中转路线(0.1.0/0.1.2 → 0.1.3 → 0.1.4)的话,每升一版都要各跑一次migrate.sh up,两次迁移都成功才算走完。

如果你用的是 ParadeDB,还有一条 SQL 需要手动执行:

psql -U ${DB_USER} -d ${DB_NAME} -f migrations/paradedb/01-migrate-to-paradedb.sql

3. 改配置。编辑config/config.yaml,给 0.1.3 起的新认证机制补上密钥块:

auth: enabled: true jwt: secret: "your-secure-jwt-secret" expires_in: 86400

⚠️ 从 0.1.0/0.1.2 上来的用户,改完配置后必须初始化一个管理员账号,否则新认证机制会挡住所有登录请求:

./bin/weknora admin create --username admin --password '${ADMIN_PASSWORD}'

0.1.4 才引入的多租户开关按需再加:

tenant: enable_multi_tenant: true default_tenant: default

4. 重建前端。0.1.4 动了设置页和菜单组件,旧的前端产物和新 API 不匹配,必须重新打包再发布到部署目录:

cd frontend npm install npm run build cp -r dist/* /var/www/weknora/frontend/

升级做没做对

别只看进程活着,这三件事全过才算升级完成:

  • 服务状态systemctl status weknora-serverweknora-docreader都显示 active;
  • 登录可用:打开登录页(前端入口在 frontend/src/views/auth/Login.vue)用新认证机制走一遍完整登录;
  • 业务闭环:新建一个知识库、传一份 PDF、发一次提问,确认解析、入库、检索整条链路响应正常。

卡住时先查这两条高频故障:

症状大概率原因处理命令
升级后无法登录管理员凭证没初始化或密码忘了./bin/weknora admin reset-password --username admin --new-password '${NEW_PASSWORD}'
知识库数据不显示旧索引未重建./bin/weknora knowledge reindex --all

还是不行?仓库根目录的 README.md 和 docs/api/README.md 里有完整的接口与排障说明,也可以直接去项目 Issue 区提问。

升级红利

性能。向量库查询慢的话,给chunks表补一个向量索引,检索耗时立竿见影:

CREATE INDEX idx_chunk_embedding ON chunks USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100);

同时在配置里挂上 Redis 缓存,重复问答就不用每次都打到数据库。

安全。三件事:服务部署在内网、防火墙只放行 80(前端)和 8080(API)、每月检查一次新版本。定期拉代码能帮你跟上后续的安全修复,这也是 WeKnora 升级最划算的长期收益。

新功能。升级完最大的体感是 WeKnora 多知识库:左侧导航进 知识库列表,按业务线建库,聊天界面里随时切换上下文:

企业侧还可以用租户接口做组织隔离,SDK 调用示例在 client/ 目录里,照着抄就行。

一句话收尾:备份到位、按路线走、三条验收都过,这次迁移就算稳了。后续版本发布后,照着同样的备份—迁移—验证节奏再来一遍即可,详细文档见仓库内 README_CN.md。

【免费下载链接】WeKnoraOpen-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.项目地址: https://gitcode.com/GitHub_Trending/we/WeKnora

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 8:56:05

深入qtserialport源码:跨平台串口编程的底层机制与最佳实践

简介&#xff1a;qtserialport源码是一套面向Qt 4.8.7环境的第三方串口通信类库源码&#xff0c;主要帮助老版本Qt项目实现串口收发与外部设备控制&#xff0c;适合正在维护或升级Qt4桌面及嵌入式应用的开发者。压缩包共148个文件&#xff0c;体积仅408KB&#xff0c;包含39个c…

作者头像 李华
网站建设 2026/9/7 8:55:34

WAGO GSDML文件完全解读:PROFINET远程IO集成与调试实战

简介&#xff1a;万可&#xff08;WAGO&#xff09;750/753系列数字输入输出模块的GSDML硬件配置文件&#xff08;版本V2.33&#xff0c;2021年1月15日发布&#xff09;&#xff0c;面向工业自动化领域的系统集成与现场调试工程师。该文件基于GSD&#xff08;通用站描述&#x…

作者头像 李华
网站建设 2026/9/7 8:55:30

大模型+ pandas 实现销售明细自动汇总与异常检测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 8:55:20

Live2D模型网页展示实战:加载、交互与问题排查

这次我们来看一个 Live2D 模型展示。主角是「森系美萌猫喵大小姐」&#xff0c;整体走森系、可爱、猫娘主题&#xff0c;角色配置包含猫耳、尾巴、铃铛这类常见 Live2D 装饰元素&#xff0c;服装配色偏自然系和暖色系。这类模型常见于 VTuber 直播、网页互动展示、视觉小说和手…

作者头像 李华
网站建设 2026/9/7 8:54:55

STM32嵌入式系统速成:考点梳理、环境搭建与调试实战全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/7 8:53:33

AI创意生成工具部署指南:从环境配置到应用实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华