Как быстро сделать копию базы данных PostgreSQL не прибегая к созданию/восстановлению из резервной копии
1 |
CREATE DATABASE newdb WITH TEMPLATE originaldb OWNER dbuser; |
ERROR: source database «originaldb» is being accessed by other users
если вернет ошибку, нужно использовать следующую команду
1 2 |
SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = 'originaldb' AND pid <> pg_backend_pid() |
еще несколько вариантов
1 |
createdb -T my_old_database my_new_database; |
На крайняк придется делать pg_dump, createdb and pg_restore, e.g.
1 2 3 |
pg_dump -Fc -f olddb.pgdump -d olddb &&\ createdb newdb &&\ pg_restore -d newdb olddb.pgdump |