fix: hourly-backup 改用 python sqlite3 API #38

Merged
fam merged 2 commits from fix/hourly-backup-sqlite3 into main 2026-04-15 10:10:13 +00:00

View File

@@ -18,12 +18,14 @@ spec:
- sh
- -c
- |
set -e
BACKUP_DIR=/data/backups
mkdir -p $BACKUP_DIR
DATE=$(date +%Y%m%d_%H%M%S)
# Backup SQLite database using .backup for consistency
sqlite3 /data/oil_calculator.db ".backup '$BACKUP_DIR/oil_calculator_${DATE}.db'"
echo "Backup done: $BACKUP_DIR/oil_calculator_${DATE}.db ($(du -h $BACKUP_DIR/oil_calculator_${DATE}.db | cut -f1))"
DST="$BACKUP_DIR/oil_calculator_${DATE}.db"
# Consistent snapshot via Python's sqlite3 .backup API (sqlite3 CLI not in image)
python3 -c "import sqlite3; s=sqlite3.connect('/data/oil_calculator.db'); d=sqlite3.connect('$DST'); s.backup(d); d.close(); s.close()"
echo "Backup done: $DST ($(du -h $DST | cut -f1))"
# Keep last 48 backups (2 days of hourly)
ls -t $BACKUP_DIR/oil_calculator_*.db | tail -n +49 | xargs rm -f 2>/dev/null
echo "Backups retained: $(ls $BACKUP_DIR/oil_calculator_*.db | wc -l)"