#!/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."