#!/bin/bash DB_HOST="localhost" DB_PORT="5432" DB_USER="postgres" DB_OWNER="eds" DUMP_BASE_PATH="/pgbkp/20260730" # Список баз databases=("db01" "db02" "db03") # Создаем базы for db in "${databases[@]}"; do echo "Creating: $db" psql -p "$DB_PORT" -U "$DB_USER" -c "DROP DATABASE IF EXISTS $db WITH (FORCE)" -q psql -p "$DB_PORT" -U "$DB_USER" -v ON_ERROR_STOP=1 << EOF CREATE DATABASE $db WITH OWNER = $DB_OWNER ENCODING = 'UTF8' LC_COLLATE = 'en_US.UTF-8' LC_CTYPE = 'en_US.UTF-8' ICU_LOCALE = 'en-US' LOCALE_PROVIDER = 'icu' TABLESPACE = pg_default CONNECTION LIMIT = -1 IS_TEMPLATE = False; ALTER DATABASE $db SET log_statement TO 'ddl'; EOF if [ $? -eq 0 ]; then echo "Database $db created with owner $DB_OWNER" else echo "Failed to create database $db" exit 1 fi done export PGPASSWORD="" # Восстанавливаем for db in "${databases[@]}"; do echo "Restoring: $db" if pg_restore -h "$DB_HOST" -p "$DB_PORT" -U "$DB_OWNER" -d "$db" -F d -j 4 --no-owner --no-privileges --no-tablespaces "$DUMP_BASE_PATH/${db}_dir"; then echo "Restore $db Done" else echo "Restore $db Failed" fi done echo "All done" unset PGPASSWORD