restore-db.sh (755B)
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 [[ $# -lt 1 ]]; then 9 echo "Usage: $0 <backup-filename-or-path>" >&2 10 echo "Example: $0 snow-2026-06-03-120000.db" >&2 11 exit 1 12 fi 13 14 SOURCE="$1" 15 if [[ ! -f "$SOURCE" ]]; then 16 SOURCE="${BACKUP_DIR}/$1" 17 fi 18 19 if [[ ! -f "$SOURCE" ]]; then 20 echo "Backup not found: $SOURCE" >&2 21 exit 1 22 fi 23 24 echo "This will overwrite ${DB} with:" 25 echo " ${SOURCE}" 26 echo "Stop the backend first: docker compose stop backend" 27 read -r -p "Type RESTORE to continue: " CONFIRM 28 29 if [[ "$CONFIRM" != "RESTORE" ]]; then 30 echo "Aborted." 31 exit 1 32 fi 33 34 mkdir -p "$(dirname "$DB")" 35 cp "$SOURCE" "$DB" 36 echo "Database restored from $SOURCE"