為什麼從 1.109.2 升級到 2.32.7 時未生成遷移報告
如何在沒有遷移報告的情況下檢查工作流程與新版本的相容性?
從 1.109.2 到 2.32.7 之間是否有我們應該注意的破壞性更改?
嘿 @hemchandra,在等待回應的同時,以下是一些可能對你有幫助的資源:
建議資源
自動匹配到你的問題。
文件:
論壇:
@mohamed3nan、@A_A4、@Lam_Minh_Phan - 你們之前在類似的問題上提供過幫助,能看一下嗎?
由 n8n 社群機器人自動建議。這是試點計劃 - 請在此分享反饋。
嗨 @hemchandra 歡迎!
它在 1.121.0 版本中發布,所以 1.109.2 從未擁有過它。這也是一個升級前工具,用於掃描 1.x 實例,而不是升級產生的內容:
您已經在 2.32.7 版本上了,所以升級後失敗的執行情況會顯示實際上哪裡出了問題。若要取得正式報告,請將一個臨時的 1.121.x 實例指向您升級前資料庫的副本,並打開「設定」>「遷移報告」。
有的,整個 v2.0 組合。沒有拋出錯誤的是子工作流程傳回資料,父級現在接收的是子級的輸出而不是其自己的輸入。
我們可以用什麼方式進行這個相容性測試
兩種方式,靜態然後動態。
將每個工作流程匯出到一個文件並用 grep 搜尋 v2 改變的內容:
n8n export:workflow --all --output=workflows.json
grep -nE 'nodes-base.start|evaluateExpression|executeCommand|localFileTrigger|readWriteFile|waitForSubWorkflow' workflows.json
每次搜尋結果都是一個需要根據重大變更清單檢查的工作流程。在 Docker 上,需要加上前綴 docker exec -u node -it <container-name>。
然後執行相關的工作流程,無需等待觸發器:
n8n execute --id <ID>
感謝您的回覆。
能否請您澄清這些命令的執行環境?我們在 OpenShift (Kubernetes) 上執行 n8n。對於我們的設置,相應的方法是什麼?
相同的命令,用 oc exec 取代 docker exec。沒有相當於 -u node 的選項,oc exec 無法選擇使用者,而在受限制的 SCC 下,pod 已經以任意 UID 在群組 0 中執行。
該 UID 在容器中也無法在任何地方寫入,所以移除 --output 並讓匯出串流至 stdout,在您自己的機器上重新導向:
oc exec deploy/n8n -- n8n export:workflow --all > workflows.json
沒有 -it,TTY 會破壞重新導向。在本地 grep 該檔案。執行本身保留在 pod 內:
oc exec -it deploy/n8n -- n8n execute --id <ID>