50 lines
1.1 KiB
Bash
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}
|
|
}
|