Files
bxh/scripts/export_snapshots.sh

36 lines
1.3 KiB
Bash
Executable File

#!/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"