Files
backup-2/assets/usr/local/sbin/lib/postgresql.sh
T
2020-03-27 12:40:45 +07:00

50 lines
1.1 KiB
Bash

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