iT邦幫忙

2026 iThome 鐵人賽

DAY 28
0
ChatGPT & Codex

窮鬼冰箱升級計劃系列 第 28 篇

【Day 28】beggarFridge 的 Backup & Recovery

  • 分享至 

  • xImage
  •  

前言

針對可能會個毀壞的資料進行備份,重要的資料大概有三類:Database,Files和Configuration

Database
├── SQLite
│   └── inventory / product / events / notifications

Files
├── photos/
│   └── ESP32 上傳照片

Configuration
├── .env
├── systemd service
├── application config
└── mappings / rules

檔案系統中,分別有一些程式碼,但已經透過 Git 方式保存。 (但是其中涉及機敏的資訊並不會進到版本控制)

Code
├── app/
├── services/
├── routers/
└── scripts/

Data
├── database/fridge.db
└── photos/

Config
├── .env
├── systemd
└── runtime settings

SQLite

sqlite3 \
  database/fridge.db \
  ".backup backup/fridge.db"
import sqlite3
from pathlib import Path


SOURCE = Path(
    "database/fridge.db"
)

DEST = Path(
    "backup/fridge.db"
)


def backup_database():

    DEST.parent.mkdir(
        parents=True,
        exist_ok=True,
    )

    with sqlite3.connect(
        SOURCE
    ) as source:

        with sqlite3.connect(
            DEST
        ) as target:

            source.backup(
                target
            )

上一篇
【Day 27】beggarFridge 的 Logging 與 Troubleshooting 機制
系列文
窮鬼冰箱升級計劃 共 28 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言