Files
Mebbling/docs/OPERATIONS.md
T

33 lines
1.2 KiB
Markdown
Raw Blame History

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