final touches for beta skymoney (at least i think)
This commit is contained in:
25
scripts/backup.sh
Normal file
25
scripts/backup.sh
Normal file
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
if [[ -z "${DATABASE_URL:-}" && -z "${BACKUP_DATABASE_URL:-}" ]]; then
|
||||
echo "DATABASE_URL or BACKUP_DATABASE_URL is required."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ENV_FILE="${ENV_FILE:-./.env}"
|
||||
if [[ -f "$ENV_FILE" ]]; then
|
||||
set -a
|
||||
# shellcheck source=/dev/null
|
||||
. "$ENV_FILE"
|
||||
set +a
|
||||
fi
|
||||
|
||||
OUT_DIR="${BACKUP_DIR:-./backups}"
|
||||
mkdir -p "$OUT_DIR"
|
||||
|
||||
STAMP="$(date +%F_%H%M%S)"
|
||||
OUT_FILE="${OUT_DIR}/skymoney_${STAMP}.dump"
|
||||
|
||||
pg_dump "${BACKUP_DATABASE_URL:-$DATABASE_URL}" -Fc -f "$OUT_FILE"
|
||||
|
||||
echo "Backup written to: $OUT_FILE"
|
||||
37
scripts/restore.sh
Normal file
37
scripts/restore.sh
Normal file
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ENV_FILE="${ENV_FILE:-./.env}"
|
||||
if [[ -f "$ENV_FILE" ]]; then
|
||||
set -a
|
||||
# shellcheck source=/dev/null
|
||||
. "$ENV_FILE"
|
||||
set +a
|
||||
fi
|
||||
|
||||
if [[ -z "${BACKUP_FILE:-}" ]]; then
|
||||
echo "BACKUP_FILE is required."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "${DATABASE_URL:-}" ]]; then
|
||||
echo "DATABASE_URL is required."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RESTORE_DB="${RESTORE_DB:-skymoney_restore_test}"
|
||||
RESTORE_URL="${RESTORE_DATABASE_URL:-}"
|
||||
ADMIN_URL="${ADMIN_DATABASE_URL:-$DATABASE_URL}"
|
||||
|
||||
if [[ -z "$RESTORE_URL" ]]; then
|
||||
echo "RESTORE_DATABASE_URL is required (example: postgresql://user:pass@host:5432/${RESTORE_DB})."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Creating restore database: ${RESTORE_DB}"
|
||||
psql "$ADMIN_URL" -v ON_ERROR_STOP=1 -c "DROP DATABASE IF EXISTS \"${RESTORE_DB}\";" >/dev/null
|
||||
psql "$ADMIN_URL" -v ON_ERROR_STOP=1 -c "CREATE DATABASE \"${RESTORE_DB}\";" >/dev/null
|
||||
|
||||
pg_restore --no-owner --no-privileges --dbname="$RESTORE_URL" "$BACKUP_FILE"
|
||||
|
||||
echo "Restore completed into: ${RESTORE_DB}"
|
||||
Reference in New Issue
Block a user