feat: complete v0.2 source and sync management
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
# 維運:備份、還原與資料庫升級
|
||||
|
||||
## 備份
|
||||
|
||||
在專案根目錄執行:
|
||||
|
||||
```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 的保證。
|
||||
Reference in New Issue
Block a user