29 lines
681 B
Bash
29 lines
681 B
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
ROOT_DIR="$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)"
|
|
ENV_FILE="${ECOSPECIES_ENV_FILE:-$ROOT_DIR/docs/docker-compose-traefik.env}"
|
|
COMPOSE_FILE="${ECOSPECIES_COMPOSE_FILE:-$ROOT_DIR/docs/docker-compose-traefik.yml}"
|
|
OUTPUT_FILE="${1:-$ROOT_DIR/ecospecies-backup.sql}"
|
|
|
|
if [ ! -f "$ENV_FILE" ]; then
|
|
echo "Missing env file: $ENV_FILE" >&2
|
|
exit 1
|
|
fi
|
|
|
|
set -a
|
|
. "$ENV_FILE"
|
|
set +a
|
|
|
|
DB_USER="${ECOSPECIES_DB_USER:-ecospecies}"
|
|
DB_NAME="${ECOSPECIES_DB_NAME:-ecospecies}"
|
|
|
|
docker compose \
|
|
--env-file "$ENV_FILE" \
|
|
-f "$COMPOSE_FILE" \
|
|
exec -T db \
|
|
pg_dump -U "$DB_USER" "$DB_NAME" \
|
|
> "$OUTPUT_FILE"
|
|
|
|
printf 'Backup written to %s\n' "$OUTPUT_FILE"
|