#!/usr/bin/env bash set -euo pipefail ROOT="$(cd "$(dirname "$0")/.." && pwd)" STAMP="$(date +%Y%m%d_%H%M%S)" OUT_DIR="${BACKUP_DIR:-$ROOT/tmp/backups}" mkdir -p "$OUT_DIR" # Prefer Docker Compose postgres service when available if docker compose -f "$ROOT/docker-compose.yml" ps postgres 2>/dev/null | grep -q "running\|Up"; then FILE="$OUT_DIR/simplecrm_${STAMP}.sql.gz" echo "Backup via docker compose → $FILE" docker compose -f "$ROOT/docker-compose.yml" exec -T postgres \ pg_dump -U "${POSTGRES_USER:-simplecrm}" "${POSTGRES_DB:-simplecrm_development}" | gzip > "$FILE" else FILE="$OUT_DIR/simplecrm_${STAMP}.sql.gz" echo "Backup via local pg_dump → $FILE" PGPASSWORD="${POSTGRES_PASSWORD:-simplecrm_dev}" pg_dump \ -h "${DATABASE_HOST:-localhost}" \ -U "${POSTGRES_USER:-simplecrm}" \ "${POSTGRES_DB:-simplecrm_development}" | gzip > "$FILE" fi echo "OK: $FILE"