#!/usr/bin/env sh set -eu BACKUP_DIR="${BACKUP_DIR:-./data/backups}" RETENTION_DAYS="${BACKUP_RETENTION_DAYS:-14}" UPLOAD_DIR="${UPLOAD_DIR:-/app/uploads}" PROMPT_DIR="${PROMPT_DIR:-/app/prompts}" DATABASE_DRIVER="${DATABASE__DRIVER:-postgres}" DATABASE_HOST="${DATABASE__HOST:-postgres}" DATABASE_PORT="${DATABASE__PORT:-5432}" DATABASE_NAME="${DATABASE__DATABASE:-}" DATABASE_USER="${DATABASE__USER:-}" DATABASE_PASSWORD="${DATABASE__PASSWORD:-}" timestamp="$(date -u +%Y%m%d-%H%M%S)" postgres_file="postgres-${timestamp}.dump" manifest_file="backup-${timestamp}.manifest" mkdir -p "${BACKUP_DIR}" if [ "${DATABASE_DRIVER}" != "postgres" ]; then echo "create_postgres_backup.sh requires DATABASE__DRIVER=postgres." >&2 exit 1 fi if [ -z "${DATABASE_NAME}" ] || [ -z "${DATABASE_USER}" ] || [ -z "${DATABASE_PASSWORD}" ]; then echo "DATABASE__DATABASE, DATABASE__USER, and DATABASE__PASSWORD must be set." >&2 exit 1 fi if ! command -v pg_dump >/dev/null 2>&1; then echo "pg_dump is not installed in this environment." >&2 exit 1 fi PGPASSWORD="${DATABASE_PASSWORD}" pg_dump \ -h "${DATABASE_HOST}" \ -p "${DATABASE_PORT}" \ -U "${DATABASE_USER}" \ -d "${DATABASE_NAME}" \ -Fc \ > "${BACKUP_DIR}/${postgres_file}" cat > "${BACKUP_DIR}/${manifest_file}" <