n8n 升版n8n 更新n8n upgraden8n 版本自動化

n8n 升版指南:如何安全更新到最新版本而不壞掉工作流

n8n 升版最怕一更新就弄丟憑證、跑壞工作流。這篇教你升版前的備份清單、Docker 釘版本與一行回滾,以及 n8n 2.0 的破壞性變更,照著做安全更新到最新版,不再升完才後悔。

N8NMarket 2026年6月10日 9 分鐘閱讀

n8n 升版是把自架實例更新到新版本的過程,安全做法的核心很單純:先備份資料庫與加密金鑰、把版本號釘死、逐版升不要跳大版。做對這三件事,升版幾乎不會壞工作流。

升版出事最常見的不是新功能有 bug,而是「沒備份」加上「一次跳太多版」。一個自架兩年沒更新的人,直接從 1.50 跳到 2.0,等於要一口氣承受中間每一版的破壞性變更,憑證讀不出來、節點被停用,光除錯就燒掉一個下午。下面這套流程就是用來避免這種場面。

本文聚焦「升版」這一步。完整的備份策略與排程,請搭配n8n 備份與更新 SOP一起看。

升版前一定要做的 3 個備份

資料庫、快照、匯出檔三種備份與防護盾

動手 docker pull 之前,先把這三樣東西備好。少一樣,出事就可能救不回來。

1. 備份加密金鑰 N8N_ENCRYPTION_KEY

這是最致命的一個。N8N_ENCRYPTION_KEY 負責加密資料庫裡所有的憑證(credentials)。一旦這把金鑰遺失,或升版後用了不同的值,你存的所有 OAuth token、API key 全部變成讀不出來的亂碼,等於要重設每一個整合。

升版前把它抄到安全的地方(密碼管理器、1Password)。它通常在你的 .envdocker-compose.yml 環境變數裡。

2. 備份資料庫

工作流、憑證、執行紀錄全在資料庫。自架若用 PostgreSQL,就做一次 pg_dump;用預設的 SQLite,就把資料 volume 整個打包。重點是:n8n 的資料存在 Docker volume,不在 container 裡,所以換 image 不會動到資料,但備份還是要做,因為你怕的是「升版過程中手滑」而不是 container 本身。

3. 匯出所有工作流

多一層保險。在 n8n UI 直接匯出,或用 CLI 一次倒出來:

n8n export:workflow --all --output=./workflow-backup/

這份 JSON 即使資料庫整個壞掉也能重新匯入,是你的最後一道防線。詳細的匯入匯出操作可參考n8n Docker Compose 常見錯誤裡的環境設定段落。

安全升版的標準流程(Docker)

備份就緒後,照這四步走。

  1. 查 release notes,列出破壞性變更。 升版前先讀 n8n 官方 release notes,把你目前版本到目標版本之間所有標 breaking change 的項目抄下來,逐條確認有沒有打到你的工作流。
  2. 釘住版本號,不要用 latest。 把 image 從 n8nio/n8n:latest 改成明確的版本標籤,例如 n8nio/n8n:1.88.1。釘版本的好處是回滾可預測——出事時你清楚知道要退回哪一版。
  3. 逐版升,不跨大版跳。 中間隔了好幾個大版,就一版一版往上爬,每升一版確認工作流還能跑再升下一版。完整指令照 n8n 官方升版文件 操作。
  4. 先在測試實例驗證。 重要的正式環境,先用一個獨立的測試實例(或 n8n 的 Environments 功能)跑過一遍,確認沒問題再動正式機。

升完第一件事:打開幾條關鍵工作流,手動執行一次,確認憑證還連得上、節點沒有變紅。

升版壞了怎麼一行回滾

釘了版本號,回滾就是改個標籤的事。把 docker-compose.yml 的 image 版本改回升版前那個,然後:

docker compose up -d

因為資料在 volume 裡、不在 container,退回舊 image 之後工作流和憑證原封不動。這就是為什麼第一步要釘版本——用 latest 的話,你根本不知道「舊版」是哪一版,回滾就變成猜謎。

n8n 2.0 要特別注意的破壞性變更

如果你的目標是升到 2.0,這幾個變更最常讓工作流跑壞,先對照自己有沒有中:

  • MySQL / MariaDB 不再支援。 2.0 只支援 PostgreSQL。還在用 MySQL 或 MariaDB 的,必須先把資料庫遷到 PostgreSQL,才能升 2.0。
  • Task runners 預設啟用。 Code 節點改在隔離環境執行,行為和舊版不完全一樣,依賴特殊執行環境的 Code 節點要重測。
  • Code 節點預設禁讀環境變數。 過去在 Code 節點裡讀 process.env 的寫法會被擋,要改用其他方式傳值。
  • ExecuteCommand 與 LocalFileTrigger 預設停用。 用到這兩個節點的工作流升完會直接停掉,需要手動在設定裡重新開啟。

n8n 從 1.121.0 起內建 Migration Report 工具(在 Settings > Migration Report),會掃描你的實例和工作流、列出升 2.0 會踩到的問題。升大版前先跑一次,比自己土法煉鋼可靠。升完若出現節點報錯,可對照n8n 常見錯誤 Top 10排查。實際升 2.0 的社群經驗也可參考 n8n 官方論壇的升級討論串

回滾箭頭將伺服器還原到先前版本

常見問題

n8n 升版會弄丟我的工作流嗎?

不會,只要你沒刪掉資料 volume。n8n 的工作流、憑證都存在資料庫與 Docker volume,換 container image 不會動到這些資料。但升版前仍應完整備份,以防操作失誤。

升版後憑證全部失效怎麼辦?

最常見的原因是 N8N_ENCRYPTION_KEY 換了或遺失。把它改回升版前的原值再重啟即可。如果金鑰真的找不到了,所有憑證都得重新設定,這也是為什麼升版前一定要先備份這把金鑰。

可以從很舊的版本直接跳到最新版嗎?

技術上可以,但風險很高。跨大版直跳等於一次承受中間所有破壞性變更。建議逐版升級,每升一版確認工作流正常再繼續,遇到大版改用 Migration Report 先掃問題。

Docker 怎麼回滾到舊版本?

先決條件是你升版前用的是明確的版本標籤而非 latest。把 docker-compose.yml 的 image 改回舊版本號,執行 docker compose up -d 即可。資料在 volume 裡不受影響。

n8n Cloud 需要自己升版嗎?

不用。n8n Cloud 由官方自動維護與升版,這些備份、釘版本、回滾的工作只有自架版才需要做。各方案差異見n8n Cloud 免費方案比較


升版前先把這份備份清單跑一遍,再去動 image。需要更完整的長期備份排程,接著讀n8n 備份與更新 SOP把整套機制建起來。