[PosgreSQL] database をコピーする

2019/12/05   #PostgreSQL 
このエントリーをはてなブックマークに追加

まず、コピー元DBの全ての接続を切断する。
例えば docker-compose で動かしているなら以下のようにする。

echo '\c postgres \\ select pg_terminate_backend(pid) from pg_stat_activity where datname='\''データベース名'\'';' \
| docker container exec -u postgres -i $(docker-compose ps -q dockerサービス名) psql -Uユーザー名 -dデータベース名

-T でテンプレートをコピー元DBで指定して createdb する。

createdb -h localhost -Uユーザー名 -T コピー元DB名 コピー先DB名