從 1.109.2 升級至 2.32.7 後未生成遷移報告

為什麼從 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>