#!/bin/bash set -e # Default to local TARGET="local" for arg in "$@"; do if [[ "$arg" == "-target" ]]; then NEXT_IS_TARGET=1 continue fi if [[ $NEXT_IS_TARGET == 1 ]]; then TARGET="$arg" NEXT_IS_TARGET=0 fi done if [[ "$TARGET" == "prod" ]]; then DB_CONTAINER="cmc-prod-db" DB_USER="cmc" DB_PASS="xVRQI&cA?7AU=hqJ!%au" DB_NAME="cmc" elif [[ "$TARGET" == "stg" ]]; then DB_CONTAINER="cmc-stg-db" DB_USER="cmc" DB_PASS="xVRQI&cA?7AU=hqJ!%au" DB_NAME="cmc" else # local DB_CONTAINER="cmc-db" DB_USER="cmc" DB_PASS="xVRQI&cA?7AU=hqJ!%au" DB_NAME="cmc" fi # Get latest backup from production LATEST_REMOTE_BACKUP=$(ssh cmc "ls -t /home/cmc/backups/backup_*.sql.gz | head -n1") echo "Syncing latest backup: $LATEST_REMOTE_BACKUP" rsync -avz --progress "cmc:$LATEST_REMOTE_BACKUP" ~/backups/ LATEST_BACKUP=$(basename "$LATEST_REMOTE_BACKUP") LATEST_BACKUP=~/backups/$LATEST_BACKUP echo "Restoring database from latest backup: $LATEST_BACKUP to $TARGET ($DB_CONTAINER)" if [ -f "$LATEST_BACKUP" ]; then docker cp "$LATEST_BACKUP" "$DB_CONTAINER":/tmp/backup.sql.gz docker exec "$DB_CONTAINER" sh -c "gunzip < /tmp/backup.sql.gz | mariadb -u $DB_USER -p'$DB_PASS' $DB_NAME" echo "Database restore complete." else echo "No backup file found in ~/backups. Skipping database restore." fi