#! /bin/bash
sourseHost=127.0.0.1
sourcePort=5432
sourceDatabase=source
targetHost=127.0.0.1
targetPort=5432
targetDatabase=target
echo '開始備份資料庫'${sourseHost}':'${sourcePort}'/'${sourceDatabase}'到'${targetHost}':'${targetPort}'/'${targetDatabase}
psql -h ${targetHost} -p ${targetPort} -U postgres --command "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='"${targetDatabase}"'" \
&& psql -h ${targetHost} -p ${targetPort} -U postgres --command "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='"${targetDatabase}"'" \
&& dropdb -h ${targetHost} -p ${targetPort} -U postgres -w ${targetDatabase} \
&& psql -h ${targetHost} -p ${targetPort} -U postgres --command 'CREATE DATABASE "'${targetDatabase}'"' \
&& pg_dump -h ${sourseHost} -w -U postgres -T vi_* -p ${sourcePort} ${sourceDatabase}|psql --quiet -h ${targetHost} -p ${targetPort} -w -d ${targetDatabase} -U postgres \
&& echo '備份資料庫'${sourseHost}':'${sourcePort}'/'${sourceDatabase}'到'${targetHost}':'${targetPort}'/'${targetDatabase}'成功' || echo '備份失敗'