backup-db.sh (533B)
1 #!/usr/bin/env bash 2 set -euo pipefail 3 4 ROOT="$(cd "$(dirname "$0")/.." && pwd)" 5 DB="${ROOT}/data/snow.db" 6 BACKUP_DIR="${ROOT}/data/backups" 7 8 if [[ ! -f "$DB" ]]; then 9 echo "Database not found: $DB" >&2 10 exit 1 11 fi 12 13 mkdir -p "$BACKUP_DIR" 14 STAMP="$(date +%Y-%m-%d-%H%M%S)" 15 DEST="${BACKUP_DIR}/snow-${STAMP}.db" 16 17 if command -v sqlite3 >/dev/null 2>&1; then 18 sqlite3 "$DB" ".backup '${DEST}'" 19 else 20 echo "sqlite3 not found — copying file (stop the backend first for a safe copy)." 21 cp "$DB" "$DEST" 22 fi 23 24 echo "Backup saved: $DEST"