freshyo-deploy/copier/backup_db.sh
2026-01-30 17:49:12 +00:00

44 lines
979 B
Bash
Executable file

#!/bin/bash
set -e
# -----------------------------
# INPUTS
# -----------------------------
CONTAINER_NAME="meatfarmer-db"
DB_PORT="5432"
DB_NAME="meatfarmer"
# -----------------------------
# VALIDATION
# -----------------------------
if [ -z "$CONTAINER_NAME" ] || [ -z "$DB_PORT" ] || [ -z "$DB_NAME" ]; then
echo "Usage: $0 <container_name> <port> <db_name>"
exit 1
fi
# -----------------------------
# CONFIG
# -----------------------------
PG_USER="postgres"
BACKUP_DIR="./backups"
DATE_STR=$(date +"%d_%m_%Y")
BACKUP_FILE="${DB_NAME}_${DATE_STR}.dump"
mkdir -p "$BACKUP_DIR"
# -----------------------------
# BACKUP
# -----------------------------
echo "Taking custom-format backup (.dump) of '$DB_NAME' from container '$CONTAINER_NAME'..."
docker exec "$CONTAINER_NAME" \
pg_dump \
-U "$PG_USER" \
-p "$DB_PORT" \
-Fc \
-Z 6 \
"$DB_NAME" > "$BACKUP_DIR/$BACKUP_FILE"
echo "Backup completed successfully:"
echo "$BACKUP_DIR/$BACKUP_FILE"