#!/usr/bin/env sh # PostgreSQL backup of the GTI Fiscal Hub (custom format, restorable with restore.sh). Run from deploy/hub. # ./backup.sh -> ./backups/gti_fiscal_YYYYmmdd_HHMMSS.dump (last 14 kept) set -eu COMPOSE="docker compose -f docker-compose.prod.yml --env-file .env" DIR="${BACKUP_DIR:-./backups}" mkdir -p "$DIR" STAMP="$(date +%Y%m%d_%H%M%S)" FILE="gti_fiscal_${STAMP}.dump" $COMPOSE exec -T postgres pg_dump -U gti -d gti_fiscal -Fc -f "/backups/${FILE}" [ -s "$DIR/$FILE" ] || { echo "backup empty or missing: $DIR/$FILE" >&2; exit 1; } ls -1t "$DIR"/gti_fiscal_*.dump | tail -n +15 | xargs -r rm -f echo "backup ok: $DIR/$FILE"