1.2 KiB
1.2 KiB
維運:備份、還原與資料庫升級
備份
在專案根目錄執行:
./scripts/backup.sh
腳本會在 data/backups/YYYYMMDD-HHMMSS/ 建立兩個檔案:
hub.db:由正在執行的 SQLite 資料庫建立的一致性備份。uploads.tar.gz:Hub 本機上傳的附件。
data/backups/ 已由 Git 排除。請將備份複製到另一台主機或加密的雲端儲存;只留在同一台機器不算完整備份。
還原
- 停止服務:
docker compose down。 - 備份目前的
data/hub.db與public/uploads/,以免操作失誤。 - 將選定備份中的
hub.db覆蓋為data/hub.db。 - 解開附件:
tar -xzf data/backups/<時間>/uploads.tar.gz -C public。 - 重新啟動:
docker compose up -d。
請始終一起還原資料庫與附件,否則貼文中的附件連結可能失效。
Schema migration
資料庫 schema 由 lib/db.ts 管理。每個欄位 migration 在 schema_migrations 表中記錄版本與套用時間,啟動 Web 或 Worker 時會自動執行尚未套用的安全 migration。
升級 Mebbling 前請先執行備份。若新版本在測試環境正常運作,再升級正式資料;不支援直接以舊程式碼讀取已升級 schema 的保證。