36 lines
1.3 KiB
Bash
Executable File
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"
|