前言
最近 Dify 釋出了 v1.10.0 版本,帶來了令人興奮的 Trigger(觸發器) 功能,支援定時排程和 Webhook 回調等自動化觸發機制。在 Zeabur 平台上升級前,做好資料備份是非常重要的一步。
本文記錄了我在 Zeabur 平台升級 Dify 至 v1.10.0 前的備份流程,以及相關的升級注意事項。
Dify v1.10.0 新功能亮點
在進入備份流程前,先來了解這次升級帶來的主要新功能:
Trigger 觸發器功能
v1.10.0 最重要的新功能是 Trigger(觸發器),支援三種類型:
| 觸發類型 | 說明 | 使用場景 |
|---|---|---|
| Schedule | 基於時間的定時觸發 | 定期執行報表生成、資料同步 |
| Webhook | HTTP 回調觸發 | 外部系統事件通知、API 整合 |
| SaaS Integration | 第三方平台事件 | Slack、GitHub、Linear 等平台整合 |
IMPORTANTTrigger 功能僅適用於 Workflow,Chatflow、Agent 和 BasicChat 暫不支援。
其他重要更新
- Iteration 節點:新增
flatten_output配置選項 - MCP 規範升級:支援 MCP 2025-06-18 規範
- Workflow 暫停狀態:支援暫停和恢復上下文
- MCP 音訊支援:MCP Tools 現已支援音訊內容
Zeabur 平台備份流程
Zeabur 提供了內建的備份工具,可以備份資料庫和服務 Volume。Dify 在 Zeabur 上運行時包含多個服務,其中三個核心服務必須備份:
| 服務 | 資料內容 | 備份方式 |
|---|---|---|
| db (PostgreSQL) | 工作流定義、提示模板、用戶帳戶及權限 | 資料庫備份 |
| weaviate | 知識庫向量索引和嵌入結果 | Volume 備份 |
| api | 上傳的文件和靜態資源 | Volume 備份 |
關於 plugin-daemonplugin-daemon 本身不儲存核心用戶資料,插件的註冊資訊已包含在 PostgreSQL 資料庫中。
但如果你有自訂插件或本地安裝的插件,建議額外備份 plugin-daemon 服務,以避免升級後需要重新安裝或設定插件。使用官方 Marketplace 插件的用戶則無需備份此服務。
步驟一:暫停相關服務
在備份 Volume 資料前,需要先暫停服務:
- 進入 Zeabur Dashboard
- 依序暫停 api、weaviate 服務
- 點擊各服務的 Settings → Suspend Service
NOTE暫停服務不會造成資料遺失,但這是備份 Volume 的必要步驟。
步驟二:備份 PostgreSQL 資料庫(db)
資料庫可以在線上備份,無需停機:
- 在 Zeabur Dashboard 中找到 db 服務(PostgreSQL)
- 切換到 Backup 標籤
- 點擊 Backup 按鈕
- 等待備份完成後下載 SQL dump 檔案
步驟三:備份 Weaviate 向量資料庫
- 確認 weaviate 服務已暫停
- 在 weaviate 服務的 Backup 標籤中點擊 Backup
- 等待備份完成後下載檔案
步驟四:備份 API 存儲
- 確認 api 服務已暫停
- 在 api 服務的 Backup 標籤中點擊 Backup
- 等待備份完成後下載檔案
CAUTIONZeabur 僅保留備份 7 天,請務必下載並另外存檔以確保長期安全。
步驟五:恢復服務
備份完成後:
- 進入各服務的 Overview 頁面
- 點擊 Restart Service 恢復運行
- 建議啟動順序:db → weaviate → api → 其他服務
Docker 自架環境備份方案
如果你是使用 Docker Compose 自架 Dify,以下提供三種備份方案:
方案一:備份 Docker Volumes(推薦)
這是最完整且簡單的備份方式,一次備份包含所有資料。
備份設定檔
# 在 dify/docker 目錄下執行mkdir -p backupcp .env ./backup/cp docker-compose.yaml ./backup/備份三個核心 Volume
# 備份 API 存儲docker run --rm --volumes-from docker-api-1 \ -v ${PWD}:/backup busybox \ tar cvf /backup/docker-api.tar app/api/storage
# 備份 Weaviate 向量資料庫docker run --rm --volumes-from docker-weaviate-1 \ -v ${PWD}:/backup busybox \ tar cvf /backup/docker-weaviate-data.tar var/lib/weaviate
# 備份 PostgreSQL 資料庫docker run --rm --volumes-from docker-db-1 \ -v ${PWD}:/backup busybox \ tar cvf /backup/docker-db-data.tar var/lib/postgresql/data還原步驟
# 1. 下載最新 Dify 程式碼git clone https://github.com/langgenius/dify.gitcd dify/docker
# 2. 恢復設定檔cp /path/to/backup/.env .cp /path/to/backup/docker-compose.yaml .
# 3. 複製備份檔案到當前目錄cp /path/to/backup/*.tar .
# 4. 啟動服務docker compose up -d
# 5. 等待容器啟動後還原資料docker run --rm --volumes-from docker-api-1 \ -v ${PWD}:/backup busybox \ tar xvf /backup/docker-api.tar -C /
docker run --rm --volumes-from docker-weaviate-1 \ -v ${PWD}:/backup busybox \ tar xvf /backup/docker-weaviate-data.tar -C /
docker run --rm --volumes-from docker-db-1 \ -v ${PWD}:/backup busybox \ tar xvf /backup/docker-db-data.tar -C /
# 6. 執行資料庫升級docker exec -it docker-api-1 flask db upgrade方案二:PostgreSQL 單獨備份
如果只需備份資料庫:
# 完整叢集備份docker exec -it docker-db-1 pg_dumpall -U postgres > full_backup_$(date +%Y%m%d_%H%M%S).sql
# 或僅備份 dify 資料庫docker exec -it docker-db-1 pg_dump -U postgres -d dify > dify_backup_$(date +%Y%m%d_%H%M%S).sql還原:
docker exec -it docker-db-1 psql -U postgres < /path/to/backup.sql方案三:直接壓縮 Volumes 資料夾
最簡便的方式:
# 壓縮整個 volumes 資料夾tar -czf dify_volumes_backup_$(date +%Y%m%d_%H%M%S).tar.gz ./volumes/
# 還原tar -xzf dify_volumes_backup_*.tar.gz -C /path/to/dify/docker/Dify 核心資料組成
了解 Dify 的資料結構有助於選擇適合的備份策略:
| 資料類型 | 儲存位置 | 說明 |
|---|---|---|
| PostgreSQL | docker-db-1 | 工作流定義、提示模板、用戶帳戶 |
| Weaviate | docker-weaviate-1 | 知識庫向量索引和嵌入結果 |
| API 存儲 | docker-api-1 | 上傳的文件和靜態資源 |
| 設定檔 | .env, docker-compose.yaml | 環境變數和服務設定 |
升級注意事項
容器名稱確認
不同環境下容器名稱可能不同,執行備份前先確認:
docker ps | grep dify根據輸出調整命令中的容器名稱(如 docker-api-1 可能是 dify-api-1)。
API 密鑰保護
使用 SQL 單獨備份可能導致模型供應商的 API 密鑰無法還原。建議使用完整的 volumes 備份以避免此問題。
升級前檢查清單
- ✅ 備份
.env和docker-compose.yaml - ✅ 執行完整的 volumes 備份
- ✅ 確保伺服器有足夠的磁碟空間
- ✅ 備份 PostgreSQL 資料庫(可選但推薦)
- ✅ 網路連接穩定
備份方案比較
| 備份方式 | 優點 | 缺點 | 適用場景 |
|---|---|---|---|
| Zeabur 內建備份 | 操作簡單、整合度高 | 僅保留 7 天 | Zeabur 平台用戶 |
| 備份 volumes 資料夾 | 完整、保留所有設定 | 檔案較大 | 完整備份、遷移 |
| PostgreSQL 備份 | 輕量、結構化 | 遺失檔案和金鑰 | 定期自動備份 |
| 組合方案 | 靈活、適應多種需求 | 複雜度中等 | 生產環境 |
結語
在升級 Dify 這類關鍵服務前,做好資料備份是必要的防護措施。無論是使用 Zeabur 平台的內建工具,還是自架環境的 Docker volumes 備份,選擇適合自己需求的方案最重要。
升級到 v1.10.0 後,別忘了試試新的 Trigger 功能,它能讓你的工作流自動化程度更上一層樓!
回報錯字、失效連結,或告訴我你想看的延伸主題。