
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 落后了兩三個小版本聽說數(shù)據(jù)庫要跑一堆遷移就慫了。這篇文章把升級到 0.7.2 的全過程拆成存儲、應(yīng)用、界面三層每層做完都能當(dāng)場驗證翻車時有一條能完整執(zhí)行的回滾路線。讀完你可以獨立把升級做完并驗收。值得升上去的理由這節(jié)回答這趟升級值不值得花功夫。從 CHANGELOG 里挑三個最實際的知識庫文件夾樹 帶修訂歷史的分塊編輯0.7.2文檔列表變成真正的側(cè)邊欄文件夾樹可以就地重命名、把文檔挪去別的文件夾檢索分塊支持在 UI 直接改每個舊版本都有快照可 diff、一鍵回滾改完自動重建索引。一批安全修復(fù)0.7.0對 web_fetch、數(shù)據(jù)源連接器、模型客戶端做了 SSRF 防護登錄和管理接口里的密鑰做了脫敏API key 越權(quán)IDOR的口子也被堵上了。老版本如果直接暴露在內(nèi)網(wǎng)外這部分最該升。檢索質(zhì)量與穩(wěn)定性0.7.1/0.7.2rerank 的段落清洗不再切碎代碼和公式段落中文查詢改寫走 jieba 分詞后稀疏檢索真正能命中空 embedding 結(jié)果不再讓 worker 死鎖。另外移除了 Neo4j 會話記憶依賴運維上少養(yǎng)一個組件。動手前先回答三個問題這節(jié)用來擋掉九成翻車每個問題都給了判斷標(biāo)準(zhǔn)別跳過。備份做沒做判斷標(biāo)準(zhǔn)手頭有一份pg_dump出來的 SQL文件大小和數(shù)據(jù)庫體量在同一量級。注意知識庫原文在對象存儲/本地文件目錄里數(shù)據(jù)庫只存結(jié)構(gòu)和索引兩邊都要備。版本差幾代打開系統(tǒng)信息頁看你當(dāng)前的版本號再對照 CHANGELOG.md 的條目。差一個小版本屬于直接升跨了 0.6.0引入工作區(qū) RBAC或 0.7.0引入 principal 模型、CLI 破壞性變更這類大版本建議走中間版本確認(rèn)權(quán)限行為。依賴工具裝沒裝手動跑遷移需要migrate工具scripts/migrate.sh 檢測不到會直接報錯退出提示行就是安裝命令。docker compose 部署則不用裝它但要確認(rèn)能正常docker compose pull。選擇你的升級路徑遷移鏈?zhǔn)前窗姹咎栱樞蜃詣友a齊的中間版本主要用來確認(rèn)行為變化不是數(shù)據(jù)庫層面的硬要求。按你的現(xiàn)狀對號入座當(dāng)前版本推薦路徑風(fēng)險 / 預(yù)計耗時0.7.1直升 0.7.2低只新增000075–000079幾條遷移約 10–20 分鐘0.6.x直升 0.7.2有測試環(huán)境就先測中0.7.0 改了 CLI 命令并引入 scope 化的 API key約 30–40 分鐘0.5.x 及更早先升 0.6.3 驗證 RBAC 角色與成員權(quán)限再升 0.7.2高遷移版本多migrations/versioned/已排到 90 號預(yù)留 1–2 小時升級實操這節(jié)按存儲層、應(yīng)用層、界面層推進每層結(jié)尾都有一個卡點提示卡住先看那里。存儲層先備份校驗再跑數(shù)據(jù)庫遷移做什么全庫備份然后跑待執(zhí)行的遷移。為什么遷移只向前改表結(jié)構(gòu)整份 SQL 備份是唯一能跨多個版本回退的保障先手動跑遷移可以讓數(shù)據(jù)庫報錯和應(yīng)用啟動解耦排查更干凈。# 備份文件名帶日期后面回滾要用 pg_dump -U ${DB_USER} -h ${DB_HOST} -p ${DB_PORT} ${DB_NAME} weknora_backup_$(date %Y%m%d).sql # 查看升級前遷移版本再執(zhí)行 export DB_HOST DB_PORT DB_USER DB_PASSWORD DB_NAME ./scripts/migrate.sh version ./scripts/migrate.sh up卡點提示version輸出里出現(xiàn)dirty說明上次遷移中途被殺先別跑up直接看下面翻車了怎么收場。遷移版本號和 migrations/versioned/ 下的文件名一一對應(yīng)報錯時能直接定位到是哪個 SQL。應(yīng)用層拉新代碼對齊配置做什么把鏡像或代碼拉到 0.7.2再對照模板補齊新增配置鍵。為什么新版鏡像里才帶著修復(fù)和遷移后的邏輯新引入的開關(guān)不加不會崩但加了行為更符合預(yù)期。# docker compose 部署 export WEKNORA_VERSION0.7.2 docker compose pull # 一定要 pull跳過會復(fù)用舊緩存鏡像白排查一輪 # 源碼部署 git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora git pull origin main # 或 checkout 對應(yīng) tag配置對齊拿.env和倉庫里的.env.example做 diff只關(guān)心新出現(xiàn)的鍵。0.7.x 值得看一眼的有AUTO_RECOVER_DIRTY臟狀態(tài)自動修復(fù)默認(rèn)已開、WEKNORA_MODEL_MAX_CONCURRENCY默認(rèn) 32、RESOURCE_URL_MODE控制回答里文件 URL 的形態(tài)??c提示0.7.0 的weknoraCLI 是破壞性版本——session continue改名session resume并新增model、message、skills等命令組。如果你有腳本在調(diào)舊 CLI先改腳本再升級。界面層重建前端重啟服務(wù)做什么讓前端和后端同版本上線然后重啟。為什么新 API如文件夾樹、分塊修訂需要配套前端版本不一致會出現(xiàn)按鈕點了沒反應(yīng)這類怪問題。# docker compose 部署重啟即生效UI 鏡像隨 pull 一起更新 docker compose up -d # 源碼部署先構(gòu)建前端產(chǎn)物再重啟服務(wù) ./scripts/build_frontend_dist.sh卡點提示重啟后打開系統(tǒng)信息頁數(shù)據(jù)庫遷移版本應(yīng)與./scripts/migrate.sh version的輸出一致且沒有紅色 Migration failed 標(biāo)簽。設(shè)計如此遷移失敗時應(yīng)用仍會啟動方便你排查所以能登錄不等于遷移成功。順手上傳一篇文檔確認(rèn)解析流水線能跑完。翻車了怎么收場回滾的思路先說清楚./scripts/migrate.sh down一次只回退一個遷移版本別指望一步步走回去可靠的回滾 恢復(fù)備份 舊版本鏡像。# 1. 停應(yīng)用 docker compose stop weknora-app # 2. 恢復(fù)數(shù)據(jù)庫用當(dāng)天備份 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擴展沒真正裝好。用超級用戶執(zhí)行CREATE EXTENSION IF NOT EXISTS pg_trgm;和CREATE EXTENSION IF NOT EXISTS vector;重啟后遷移會從斷點繼續(xù)。database is in dirty state at version N上次遷移中途崩潰。保持AUTO_RECOVER_DIRTYtrue重啟即可自動 force 重跑手動處理則是make migrate-force versionN-1后接make migrate-up。遷移失敗但界面還能訪問這是預(yù)期行為。完整報錯在系統(tǒng)信息頁和容器日志里兩處內(nèi)容一致按版本號找到migrations/versioned/對應(yīng)的.up.sql用 psql 手動復(fù)現(xiàn)那條語句錯誤信息會具體得多。完整案例見 docs/migration-troubleshooting.md。升級后值得立刻試的新功能只挑兩個 0.7.2 的頭部功能都是升級后第一次登錄就能看到的。知識庫文件夾樹上傳時的目錄結(jié)構(gòu)不再塞進文件名而是變成可瀏覽、可重命名、可跨文件夾移文檔的側(cè)邊欄。入口在知識庫的文檔列表頁左側(cè)即文件夾樹。分塊編輯與修訂歷史檢索分塊直接在 UI 里改舊版本自動快照支持逐版本 diff 和一鍵回滾改完索引自動重建——調(diào) RAG 效果時不用再重傳文檔了。入口文檔列表點進某篇文檔打開分塊詳情即可編輯。收尾每次升級前掃一眼 CHANGELOG 頂部的 BREAKING 標(biāo)記比如 0.7.0 的 CLI比通讀全文快遷移再報錯時系統(tǒng)信息頁的 Report issue 會預(yù)填版本號和完整錯誤連同pg_extension列表一起提 issue響應(yīng)最快備份文件保留到新版本穩(wěn)定跑滿一周再清理。到這里升級路徑、驗證點和回滾方案就都齊了。【免費下載鏈接】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創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考