#!/usr/bin/env bash set -euo pipefail ROOT="$(cd "$(dirname "$0")/.." && pwd)" POSTGRES_CONTAINER="${POSTGRES_CONTAINER:-zn-kg-new2-postgres}" FALKORDB_CONTAINER="${FALKORDB_CONTAINER:-zn-kg-new2-falkordb}" POSTGRES_DB="${POSTGRES_DB:-kg_admin}" POSTGRES_USER="${POSTGRES_USER:-admin}" POSTGRES_SCHEMA="${POSTGRES_SCHEMA:-kg_admin_new2}" mkdir -p "$ROOT/snapshots/postgres" "$ROOT/snapshots/falkordb" echo "Exporting PostgreSQL schema ${POSTGRES_SCHEMA} from ${POSTGRES_CONTAINER}..." docker exec "$POSTGRES_CONTAINER" pg_dump \ -U "$POSTGRES_USER" \ -d "$POSTGRES_DB" \ -n "$POSTGRES_SCHEMA" \ --format=custom \ --no-owner \ --no-privileges \ --file="/tmp/${POSTGRES_SCHEMA}.dump" docker cp "$POSTGRES_CONTAINER:/tmp/${POSTGRES_SCHEMA}.dump" "$ROOT/snapshots/postgres/${POSTGRES_SCHEMA}.dump" echo "Saving FalkorDB RDB from ${FALKORDB_CONTAINER}..." docker exec "$FALKORDB_CONTAINER" redis-cli -p 6379 BGSAVE >/dev/null || true for _ in 1 2 3 4 5 6 7 8 9 10; do if docker exec "$FALKORDB_CONTAINER" redis-cli -p 6379 INFO persistence | grep -q 'rdb_bgsave_in_progress:0'; then break fi sleep 1 done docker cp "$FALKORDB_CONTAINER:/var/lib/falkordb/data/dump.rdb" "$ROOT/snapshots/falkordb/dump.rdb" echo "Snapshot files:" ls -lh "$ROOT/snapshots/postgres/${POSTGRES_SCHEMA}.dump" "$ROOT/snapshots/falkordb/dump.rdb"