Hello,我是 KK,今年的鐵人賽,想跟大家分享架設 n8n 遇到的一些挑戰跟意外,就讓我們一起學習吧。
我第一次搬遷 n8n 時,嫌一個一個下載 workflow json 太慢,然後又無法使用 CLI 指令,於是就想:要不然直接複製 DB 表格過去,會不會就全部搬家了呢?
我們在 [[鐵人賽 day16 - workflow 的匯入跟 credential 的問題]] 有提到 credential 跟 workflow 的匯入。如果你還記得的話,我在 [[鐵人賽 day3 - 怎麼在本地架設 n8n]] 也有說到,n8n 是有配合的 DB的,先不論你是 PostgreSQL 或是基本的 SQLite。
如果你前面有照著 [[鐵人賽 day6 - 總是看著你笑到直發寒的 HuggingFace Space]] 裡面的連結,應該會有一個外部的 Supabase PostgreSQL 可以連線。
所以我就試著連線看看,果然可以順利的連線過去,然後就被幾十張表格給嚇到。
沒關係現代問題可以用現代手段來解決,表格多但 DataGrip 也很強,我們可以用內建的功能 import 到新 n8n 的 PostgreSQL 去。而且我實際上也沒有用到 folder
, project
等功能,應該是不難搬才對。
想不到我全部轉移過去之後,開啟新的 n8n,發現完全無法開啟。而且我重點的 credential 依然完全沒有轉移成功。
在我研究後,發現原來 n8n 會依機器不同去產生一組加密用的密鑰,你新增的 credential 內容,都會被加密,以防被人直接偷走 (像我這樣)。所以在當時除了手動重新新增外,沒有其他方法可以轉移 credential。
還好 n8n 改版得很快,後來倒是增加了 credential 的 export/import 功能 [^1]
如此一來,轉移就輕鬆多了。
跟 workflow 類似,我們連到 n8n container 內之後,輸入
n8n export:credentials --all
就能得到一個 json 檔,將它複製到新的機器內,再輸入
n8n import:workflow --input=file.json
如此一來,最重要的 workflow, credential 就都能轉移了
[^1]: CLI commands | n8n Docs