#!/usr/bin/env bash set -euo pipefail if [[ $# -lt 1 ]]; then echo "Usage: $0 [--yes]" >&2 exit 2 fi BACKUP_FILE="$1" YES="${2:-}" if [[ -z "${DATABASE_URL:-}" ]]; then echo "ERROR: DATABASE_URL is required" >&2 exit 1 fi if [[ ! -f "$BACKUP_FILE" ]]; then echo "ERROR: backup file not found: $BACKUP_FILE" >&2 exit 1 fi if [[ "$YES" != "--yes" ]]; then echo "This will restore into DATABASE_URL and may overwrite existing objects." read -r -p "Type RESTORE to continue: " CONFIRM if [[ "$CONFIRM" != "RESTORE" ]]; then echo "restore cancelled" exit 1 fi fi pg_restore --clean --if-exists --no-owner --dbname="$DATABASE_URL" "$BACKUP_FILE" echo "[restore] restored $BACKUP_FILE"