我部署 n8n 的時候並沒有另外設定資料庫,所以如果哪天 n8n 掛掉,所有資料就會直接消失,為了避免重頭來過,今天要來做備份 n8n 工作流。
備份的方法其實很多,我這裡示範的是最基礎、最簡單的版本,如果想要學更完整或自動化的做法,可以上網找看看,有不少大神都有詳細影片與教學,內容非常豐富。
1.選擇想要備份的工作流,並按Download,n8n 會下載一個 .json 檔案,裡面就是完整的流程設定
2.打開新的工作流 → 選「Import from file」→ 選剛剛下載的 .json → 匯入完成!
或是把整個工作流框起來並按Ctrl + C,之後打開工作流按Ctrl + V也行
一個一個下載對我們這種工作流不多,而且實際需求不高的人來說還算足夠,可是對有很多工作流的人來說一個一個點絕對會累死,所以接下來我們要用 n8n 自動幫自己上傳備份到雲端
1.打開工作流新增手動觸發器,並在後面新增n8n節點選擇Get many workflows
2.來到主頁打開n8n的設定,選擇n8n API,Label 取一個名稱,Expiration是key的有效期限,如果懶得一直取得新key可以直接選no
3.回到工作流設定憑證,把取得的key貼上去,Base URL 填你的 n8n 網址,後面加上 /api/v1
4.新增Convert to File節點,Operation選Convert to JSON,Mod選Each Item to Separate File
5.新增Goole drive節點選擇Upload file,File Name選想要的名字,Parent Folder選擇上傳目的資料夾(可以事先在雲端建立)
6.最後啟動工作流開始測試
執行工作流後,可以看到所有 workflow 的 JSON 檔都成功上傳到 Google Drive
我這個範例的工作流只會「自動上傳」,不會檢查或更新舊檔案,所以如果重複執行,雲端上的備份會越來越多。
如果想要讓 n8n 自動匯入備份的工作流,基本上就是把剛剛的步驟反過來做,用迴圈(Loop)讓它一筆一筆地重新建立工作流,詳細步驟可以上網搜尋,有不少大神都有分享完整的實作方法。
今天學到兩種備份方式:最基礎的手動匯出匯入,以及自動化上傳到 Google Drive,而 n8n 的工作流常常需要時間調整、測試、連接各種服務,如果哪天伺服器掛掉、Render 重灌、或不小心刪掉流程,沒有備份的話就只能從頭重做,老實說我做到現在n8n已經掛好幾次了,那種東西全沒了的感覺真的很崩潰,回頭想想,感覺今天的內容應該要在前幾天先講才對?