Skip to content

Instantly share code, notes, and snippets.

@tonybolanyo
Created January 23, 2020 09:06
Show Gist options
  • Save tonybolanyo/c136370fc9c647953301b85aec10fc30 to your computer and use it in GitHub Desktop.
Save tonybolanyo/c136370fc9c647953301b85aec10fc30 to your computer and use it in GitHub Desktop.
Duplicate database in postgres using psql
-- Impide crear nuevas conexiones a la base de datos que usaremos como plantilla
UPDATE pg_database SET datallowconn = false WHERE datname = 'original_database';
-- Cierra todas las conexiones existentes (excepto la actual)
SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'albacete' AND pid <> pg_backend_pid();
-- Crea la nueva base de datos utilizando la base de datos original como plantilla
CREATE DATABASE albacete_beta WITH TEMPLATE albacete OWNER devpostgres;
-- Permite de nuevo conexiones a la base de datos de origen
UPDATE pg_database SET datallowconn = true WHERE datname = 'original_database';
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment