40 lines
1.4 KiB
Bash
40 lines
1.4 KiB
Bash
#!/usr/bin/env bash
|
|
# One command to refresh your LOCAL Docker Postgres from the server:
|
|
# runs a read-only pg_dump on the server, downloads it, resets the local volume, restores.
|
|
#
|
|
# Prerequisite once on your Mac:
|
|
# cp docker-compose.override.local.example docker-compose.override.yml
|
|
#
|
|
# Usage (set paths to match your server):
|
|
# REMOTE_USER=nvidia-admin \
|
|
# REMOTE_HOST=103.215.13.55 \
|
|
# REMOTE_PROJECT_DIR=/home/nvidia-admin/path/to/dashboard-solusi-ai-peternakan-ayam \
|
|
# ./scripts/update-local-db-from-server.sh
|
|
#
|
|
# Does not modify production data. ./scripts/fetch-prod-db.sh and
|
|
# ./scripts/restore-postgres-local.sh remain available if you want only one step.
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
|
PROJECT_ROOT=$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd)
|
|
|
|
# Default values (can be overridden with environment variables)
|
|
: "${REMOTE_USER:=nvidia-admin}"
|
|
: "${REMOTE_HOST:=103.215.13.55}"
|
|
: "${REMOTE_PROJECT_DIR:=/home/nvidia-admin/LABS/dashboard-solusi-ai-peternakan-ayam}"
|
|
|
|
export REMOTE_USER REMOTE_HOST REMOTE_PROJECT_DIR
|
|
|
|
"$SCRIPT_DIR/fetch-prod-db.sh"
|
|
|
|
LATEST=$(ls -t "$PROJECT_ROOT"/backups/dashboard_db-*.sql.gz 2>/dev/null | head -1)
|
|
if [ -z "$LATEST" ] || [ ! -f "$LATEST" ]; then
|
|
echo "No local backup found after fetch."
|
|
exit 1
|
|
fi
|
|
|
|
"$SCRIPT_DIR/restore-postgres-local.sh" --reset "$LATEST"
|
|
|
|
echo "Local database is now a copy of the latest server backup."
|