iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0
DevOps

一個n8n免費仔的踩雷告白系列 第 16

鐵人賽 day16 - workflow 的匯入跟 credential 的問題

  • 分享至 

  • xImage
  •  

Hello,我是 KK,今年的鐵人賽,想跟大家分享架設 n8n 遇到的一些挑戰跟意外,就讓我們一起學習吧。

上一篇 [[鐵人賽 day15 - workflow 的建立與匯出]] 我們建立了一個非常非常簡單的 workflow,包含了一個 telegram 的 credential,並且 download 成一個 json 檔儲存起來。

現在讓我們回到搬遷的話題了,我們要怎麼將舊 n8n 上的 workflow 都轉移到 新 n8n 上呢?

手動單一匯入

現在在新的 n8n 內,建立一個新的空白 workflow。然後一樣點右上的…

https://ithelp.ithome.com.tw/upload/images/20250930/20161625424RtpefkU.png
只是這一次,我們點 Import from File...,然後選取之前存下來的 json 檔。神奇的事情發生了,一模一樣的 node 出現在這個空白 workflow 內。

https://ithelp.ithome.com.tw/upload/images/20250930/20161625rNJYVkXgRe.png
但是...好像哪裡怪怪的,Telegarm 的 Send a text message 好像不能使用。點進去看,你會發現 Credential 消失了。

https://ithelp.ithome.com.tw/upload/images/20250930/20161625gWxBr4x4Cn.png

這是為什麼呢?

如果你點開 json 檔,會看到一段類似下方的區塊:

{
      "parameters": {
        "chatId": "123",
        "text": "Hello World",
        "additionalFields": {}
      },
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1.2,
      "position": [
        208,
        0
      ],
      "id": "82b0b565-2d13-4942-9e49-5836dfa28397",
      "name": "Send a text message",
      "webhookId": "65769420-5a5f-4fc6-92fa-bad2e432d064",
      "credentials": {
        "telegramApi": {
          "id": "u9L7A5iozh9jPIRf",
          "name": "Telegram account"
        }
      }
    }

這是 Telegarm 的 node 匯出成 json 的內容,你能在這裡看到 credential 的資訊。但是為什麼我們匯入後卻還要重設?

這是因為不同機器上建立的 Credential 對應的 id 並不相同,所以在轉移之後,還得要手動再設定一次正確的 credential,因為在匯入時會找不到相同 id。
當然,如果你純粹是在做一次備份,在同一台機器上重新匯入的話,是不會出現這個問題的。

CLI Commands

當然對工程師而言,我們不見得要用這種低效的 UI 操作。官方也是有提供 command 的[^1],只要我們進入 docker container 內,下這段指令:

n8n export:workflow --all

我們就能一次匯出所有的 workflow 成一份 JSON 檔,再將匯出的 json 檔傳送到新的機器去,再下這個指令

n8n import:workflow --input=file.json

喔耶,我們的 workflow 就一口氣回來了。

還記得在 [[鐵人賽 day7 - HuggingFace Space 的坑#不提供 ssh 連線]] 不提供 ssh 連線的問題嗎?所以這招是無法在 HuggingFace 使用的,因為從一開始就沒辦法進去下指令。

至於 Credential,commands 下也有對應的指令可以下,倒是能避免手動匯入的 credential 無法對應的問題。


小結

今天我們講了 workflow 的匯入方式,讓使用者能跟著操作一次轉移要做的事。
明天,我要分享 [[鐵人賽 day17 - 硬幹 n8n db 的下場]],看看我為了轉移 HuggingFace workflows 所做的蠢事。

[^1]: CLI commands | n8n Docs


上一篇
鐵人賽 day15 - workflow 的建立與匯出
下一篇
鐵人賽 day17 - 不然我們直接複製 n8n DB 好了啦
系列文
一個n8n免費仔的踩雷告白20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言