#!/usr/bin/env bash # TODO: # - Проверка существования БД DB_CONNECTION= db_connect() { export DB_CONNECTION="-h ${DBHOST} -d ${DBTABLE} -U ${DBUSER}" echo "${DBHOST}:5432:${DBTABLE}:${DBUSER}:${DBPASS}" > ~/.pgpass #cat ~/.pgpass chmod 600 ~/.pgpass } db_drop() { [[ -z "${DB_CONNECTION}" ]] && db_connect # psql ${DB_CONNECTION} -c "drop schema public cascade" PGSQL_ARGS="--clean" } db_create() { # [[ -z "${DB_CONNECTION}" ]] && db_connect echo "SELECT 'CREATE DATABASE ${DBTABLE}' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = '${DBTABLE}')\gexec" | psql -h ${DBHOST} -U ${DBUSER} # psql ${DB_CONNECTION} -c "create schema public" } db_isExist() { [[ -z "${DB_CONNECTION}" ]] && db_connect false } db_backup() { [[ -z "${DB_CONNECTION}" ]] && db_connect pg_dump -F c -O -b ${DB_CONNECTION} | gzip > ${ARCHIVE} } db_restore() { [[ -z "${DB_CONNECTION}" ]] && db_connect local log_file=${ARCHIVE%.*}.log echo "[ Info ] pg_restore log file: ${log_file}" pg_restore --no-owner ${PGSQL_ARGS} ${DB_CONNECTION} ${ARCHIVE} > ${log_file} }