diff --git a/deploy/backup-cronjob.yaml b/deploy/backup-cronjob.yaml index 64ee0ab..30d81af 100644 --- a/deploy/backup-cronjob.yaml +++ b/deploy/backup-cronjob.yaml @@ -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)"