Это можно сделать, выполнив следующую команду:
CREATE DATABASE [Database to create] WITH TEMPLATE [Database to copy] OWNER [Your username];
После заполнения имен вашей базы данных и вашего имени пользователя будет создана копия указанной базы данных. Это будет работать до тех пор, пока нет других активных подключений к базе данных, которую вы хотите скопировать. Если есть другие активные соединения, вы можете временно разорвать соединения, используя эту команду:
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = '[Database to copy]'
AND pid <> pg_backend_pid();
Хорошую статью, которую я написал для Школы данных Chartio, которая более подробно описывает, как это сделать, можно найти здесь:
https://dataschool.com/learn/how-to-create-a-copy-of-a-database-in-postgresql-using-psql