20 lines
761 B
Bash
Executable File
20 lines
761 B
Bash
Executable File
#! /bin/bash --
|
|
|
|
# REQUISITI:
|
|
# sul server E sul client ci deve essere installato:
|
|
# - pgdump versione corretta
|
|
# - zstd
|
|
# - base64
|
|
# - ssh server
|
|
|
|
set -e
|
|
DOVE="$(mktemp)"
|
|
|
|
cd "$(dirname "$0")/.." && source .env
|
|
COMANDO='set -e; cd "'"$2"'" && source env_docker && PGPASSWORD="$DB_PASSWORD" pg_dump -h localhost -p "${DB_PORT:-5432}" -U "${DB_USER:postgres}" -c -Fc -Z0 "$DB_NAME" | zstd'
|
|
B64=$(echo "$COMANDO" | base64)
|
|
ssh "$1" "echo '$B64' | base64 -d | bash" | zstdcat > "$DOVE"
|
|
echo 'DROP DATABASE "'"$DB_NAME"'";' | psql -h localhost -p "${DB_PORT:-5432}" -U "${DB_USER:postgres}"
|
|
pg_restore -h localhost -p "${DB_PORT:-5432}" -U "${DB_USER:postgres}" -d "$DB_NAME" --clean -Fc -j $(cat /proc/cpuinfo | grep processor | wc -l) "$DOVE"
|
|
rm -rf "$DOVE"
|