PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Créer une copie d'une base de données dans PostgreSQL

Postgres permet d'utiliser n'importe quelle base de données existante sur le serveur comme modèle lors de la création d'une nouvelle base de données. Je ne sais pas si pgAdmin vous donne l'option dans la boîte de dialogue de création de base de données, mais vous devriez pouvoir exécuter ce qui suit dans une fenêtre de requête si ce n'est pas le cas :

CREATE DATABASE newdb WITH TEMPLATE originaldb OWNER dbuser;

Néanmoins, vous pouvez obtenir :

ERROR:  source database "originaldb" is being accessed by other users

Pour déconnecter tous les autres utilisateurs de la base de données, vous pouvez utiliser cette requête :

SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity 
WHERE pg_stat_activity.datname = 'originaldb' AND pid <> pg_backend_pid();