38 lines
824 B
Bash
38 lines
824 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}"
|
|
INPUT_FILE="${1:-}"
|
|
|
|
if [ -z "$INPUT_FILE" ]; then
|
|
echo "Usage: $0 <sql-backup-file>" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f "$ENV_FILE" ]; then
|
|
echo "Missing env file: $ENV_FILE" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f "$INPUT_FILE" ]; then
|
|
echo "Missing backup file: $INPUT_FILE" >&2
|
|
exit 1
|
|
fi
|
|
|
|
set -a
|
|
. "$ENV_FILE"
|
|
set +a
|
|
|
|
DB_USER="${ECOSPECIES_DB_USER:-ecospecies}"
|
|
DB_NAME="${ECOSPECIES_DB_NAME:-ecospecies}"
|
|
|
|
cat "$INPUT_FILE" | docker compose \
|
|
--env-file "$ENV_FILE" \
|
|
-f "$COMPOSE_FILE" \
|
|
exec -T db \
|
|
psql -U "$DB_USER" "$DB_NAME"
|
|
|
|
printf 'Restore completed from %s\n' "$INPUT_FILE"
|