WeKnora 版本升级:半小时完成且可回滚

发布时间:2026/11/2 21:43:01

WeKnora 版本升级:半小时完成且可回滚 WeKnora 版本升级半小时完成且可回滚【免费下载链接】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 落后了两三个小版本听说数据库要跑一堆迁移就怂了。这篇文章把升级到 0.7.2 的全过程拆成存储、应用、界面三层每层做完都能当场验证翻车时有一条能完整执行的回滚路线。读完你可以独立把升级做完并验收。值得升上去的理由这节回答这趟升级值不值得花功夫。从 CHANGELOG 里挑三个最实际的知识库文件夹树 带修订历史的分块编辑0.7.2文档列表变成真正的侧边栏文件夹树可以就地重命名、把文档挪去别的文件夹检索分块支持在 UI 直接改每个旧版本都有快照可 diff、一键回滚改完自动重建索引。一批安全修复0.7.0对 web_fetch、数据源连接器、模型客户端做了 SSRF 防护登录和管理接口里的密钥做了脱敏API key 越权IDOR的口子也被堵上了。老版本如果直接暴露在内网外这部分最该升。检索质量与稳定性0.7.1/0.7.2rerank 的段落清洗不再切碎代码和公式段落中文查询改写走 jieba 分词后稀疏检索真正能命中空 embedding 结果不再让 worker 死锁。另外移除了 Neo4j 会话记忆依赖运维上少养一个组件。动手前先回答三个问题这节用来挡掉九成翻车每个问题都给了判断标准别跳过。备份做没做判断标准手头有一份pg_dump出来的 SQL文件大小和数据库体量在同一量级。注意知识库原文在对象存储/本地文件目录里数据库只存结构和索引两边都要备。版本差几代打开系统信息页看你当前的版本号再对照 CHANGELOG.md 的条目。差一个小版本属于直接升跨了 0.6.0引入工作区 RBAC或 0.7.0引入 principal 模型、CLI 破坏性变更这类大版本建议走中间版本确认权限行为。依赖工具装没装手动跑迁移需要migrate工具scripts/migrate.sh 检测不到会直接报错退出提示行就是安装命令。docker compose 部署则不用装它但要确认能正常docker compose pull。选择你的升级路径迁移链是按版本号顺序自动补齐的中间版本主要用来确认行为变化不是数据库层面的硬要求。按你的现状对号入座当前版本推荐路径风险 / 预计耗时0.7.1直升 0.7.2低只新增000075–000079几条迁移约 10–20 分钟0.6.x直升 0.7.2有测试环境就先测中0.7.0 改了 CLI 命令并引入 scope 化的 API key约 30–40 分钟0.5.x 及更早先升 0.6.3 验证 RBAC 角色与成员权限再升 0.7.2高迁移版本多migrations/versioned/已排到 90 号预留 1–2 小时升级实操这节按存储层、应用层、界面层推进每层结尾都有一个卡点提示卡住先看那里。存储层先备份校验再跑数据库迁移做什么全库备份然后跑待执行的迁移。为什么迁移只向前改表结构整份 SQL 备份是唯一能跨多个版本回退的保障先手动跑迁移可以让数据库报错和应用启动解耦排查更干净。# 备份文件名带日期后面回滚要用 pg_dump -U ${DB_USER} -h ${DB_HOST} -p ${DB_PORT} ${DB_NAME} weknora_backup_$(date %Y%m%d).sql # 查看升级前迁移版本再执行 export DB_HOST DB_PORT DB_USER DB_PASSWORD DB_NAME ./scripts/migrate.sh version ./scripts/migrate.sh up卡点提示version输出里出现dirty说明上次迁移中途被杀先别跑up直接看下面翻车了怎么收场。迁移版本号和 migrations/versioned/ 下的文件名一一对应报错时能直接定位到是哪个 SQL。应用层拉新代码对齐配置做什么把镜像或代码拉到 0.7.2再对照模板补齐新增配置键。为什么新版镜像里才带着修复和迁移后的逻辑新引入的开关不加不会崩但加了行为更符合预期。# docker compose 部署 export WEKNORA_VERSION0.7.2 docker compose pull # 一定要 pull跳过会复用旧缓存镜像白排查一轮 # 源码部署 git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora git pull origin main # 或 checkout 对应 tag配置对齐拿.env和仓库里的.env.example做 diff只关心新出现的键。0.7.x 值得看一眼的有AUTO_RECOVER_DIRTY脏状态自动修复默认已开、WEKNORA_MODEL_MAX_CONCURRENCY默认 32、RESOURCE_URL_MODE控制回答里文件 URL 的形态。卡点提示0.7.0 的weknoraCLI 是破坏性版本——session continue改名session resume并新增model、message、skills等命令组。如果你有脚本在调旧 CLI先改脚本再升级。界面层重建前端重启服务做什么让前端和后端同版本上线然后重启。为什么新 API如文件夹树、分块修订需要配套前端版本不一致会出现按钮点了没反应这类怪问题。# docker compose 部署重启即生效UI 镜像随 pull 一起更新 docker compose up -d # 源码部署先构建前端产物再重启服务 ./scripts/build_frontend_dist.sh卡点提示重启后打开系统信息页数据库迁移版本应与./scripts/migrate.sh version的输出一致且没有红色 Migration failed 标签。设计如此迁移失败时应用仍会启动方便你排查所以能登录不等于迁移成功。顺手上传一篇文档确认解析流水线能跑完。翻车了怎么收场回滚的思路先说清楚./scripts/migrate.sh down一次只回退一个迁移版本别指望一步步走回去可靠的回滚 恢复备份 旧版本镜像。# 1. 停应用 docker compose stop weknora-app # 2. 恢复数据库用当天备份 psql -U ${DB_USER} -h ${DB_HOST} -c DROP DATABASE IF EXISTS WeKnora; CREATE DATABASE WeKnora OWNER ${DB_USER}; psql -U ${DB_USER} -h ${DB_HOST} -d WeKnora weknora_backup_YYYYMMDD.sql # 3. 切回旧版本 export WEKNORA_VERSION旧版本号 docker compose pull docker compose up -d三个高频报错的排查方向operator class gin_trgm_ops does not exist/type vector does not exist扩展没真正装好。用超级用户执行CREATE EXTENSION IF NOT EXISTS pg_trgm;和CREATE EXTENSION IF NOT EXISTS vector;重启后迁移会从断点继续。database is in dirty state at version N上次迁移中途崩溃。保持AUTO_RECOVER_DIRTYtrue重启即可自动 force 重跑手动处理则是make migrate-force versionN-1后接make migrate-up。迁移失败但界面还能访问这是预期行为。完整报错在系统信息页和容器日志里两处内容一致按版本号找到migrations/versioned/对应的.up.sql用 psql 手动复现那条语句错误信息会具体得多。完整案例见 docs/migration-troubleshooting.md。升级后值得立刻试的新功能只挑两个 0.7.2 的头部功能都是升级后第一次登录就能看到的。知识库文件夹树上传时的目录结构不再塞进文件名而是变成可浏览、可重命名、可跨文件夹移文档的侧边栏。入口在知识库的文档列表页左侧即文件夹树。分块编辑与修订历史检索分块直接在 UI 里改旧版本自动快照支持逐版本 diff 和一键回滚改完索引自动重建——调 RAG 效果时不用再重传文档了。入口文档列表点进某篇文档打开分块详情即可编辑。收尾每次升级前扫一眼 CHANGELOG 顶部的 BREAKING 标记比如 0.7.0 的 CLI比通读全文快迁移再报错时系统信息页的 Report issue 会预填版本号和完整错误连同pg_extension列表一起提 issue响应最快备份文件保留到新版本稳定跑满一周再清理。到这里升级路径、验证点和回滚方案就都齐了。【免费下载链接】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),仅供参考
延伸阅读

更多相关文章

2026/10/25 10:06:14

基于Arduino的激光雷达小车:从避障到自主导航的实战解析

简介:《Arduino项目开发:激光雷达导航的小车》是一份面向Arduino/树莓派爱好者和嵌入式初学者的项目式开发文档,以激光雷达自主导航小车为切入点,完整呈现从系统架构、硬件选型到代码调试的全流程。压缩包内共1个文件,…

2026/10/25 1:28:22

银河麒麟V10 Halberd版本GRUB 密码忘记如何解决——筑梦之路

问题说明银河麒麟V10 Halberd版本无法进入单用户模式,grub存在密码,而又不知道密码是多少,在启动界面不论是输入e还是c都会提示输入grub的账户密码,默认账号是root如何解决1. 使用系统iso镜像启动,进入救援模式2. chro…

2026/11/3 11:07:36

MOTOTRBO固件升级避坑指南:CPS版本、CODE plug与编程线驱动三重校验

简介:本资源是一份面向MOTOTRBO专业无线通信设备运维人员、无线电工程师及系统集成技术人员的标准化软件升级操作指南,解决设备固件与CODE plug版本更新过程中的流程不清、操作风险高、版本选择困惑等实际问题。文档以Step-by-step图文流程形式&#xff…

2026/11/3 11:07:36

算法竞赛中的前后缀分解技巧与应用

1. 题目解析与算法背景这道题目来自PA 2022(波兰算法竞赛)的Podwyżki问题,题目编号P9255,难度标记为"普及"级别。从标题中的【前后缀分解】可以判断,这是一道典型的需要运用前后缀预处理技巧的算法题。在算…

2026/11/3 11:07:36

SickOs-2靶机渗透实战:从Web漏洞到提权完整解析

1. SickOs-2靶机渗透实战解析 在网络安全实战训练领域,SickOs系列靶机以其高度仿真的漏洞环境和层层递进的技术挑战著称。作为vulhub靶场生态中的重要组成部分,SickOs-2延续了前作的设计理念,将多个典型漏洞有机整合在一个Linux系统中&#x…

2026/11/3 11:07:36

文字点选验证码技术解析与安全防护实践

1. 文字点选验证码的技术背景与应用场景文字点选验证码作为当前主流的交互式验证手段,已经广泛应用于各类网站的登录、注册等关键环节。相比传统的字符输入验证码,这种验证方式通过要求用户点击图片中特定位置的文字,实现了更高的安全性和更好…

2026/11/3 11:07:36

中小企业动态成本核算系统的微服务架构实践

1. 项目背景与定位《看潮企业管理软件》是一款面向中小企业的综合管理解决方案,这个项目编号"03-008"表明它是我们团队在"编程与数学"系列中的第三个实战项目。作为开发者,我参与了这个项目从需求分析到功能实现的全过程&#xff0c…

2026/11/3 11:02:35

Design Compiler综合实战:从环境配置到时序收敛的完整闭环

简介:本资源是一份面向数字电路设计初学者与EDA工程师的Design Compiler(DC)中文入门教程,聚焦电路综合核心原理与全流程实操。内容系统讲解综合的转换、优化、映射三阶段机制,深入剖析时序约束设置(如时钟…

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

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

2026/11/3 1:04:48

STM32实战:基于MAX14431数字隔离器的SPI隔离通信方案

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

2026/11/3 1:04:48

工业SPI隔离通信设计:MAX14431BAEE+与STM32L4A6RG实战

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

2026/11/3 1:04:48

STM32+NRF24L01无线抢答器:硬件设计、通信协议与低功耗实现

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

2026/11/3 7:47:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/2 6:39:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

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

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑