postgres rename drop clone database - ghdrako/doc_snipets GitHub Wiki

/* DISABLE NEW CONNECTIONS */
ALTER DATABASE <SOURCE_DB> WITH ALLOW_CONNECTIONS false;
-- or ALTER DATABASE moja_baza CONNECTION LIMIT 0;

/* KILL ALL EXISTING CONNECTION FROM ORIGINAL DB (sourcedb)*/
SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity 
WHERE pg_stat_activity.datname = 'SOURCE_DB' AND pid <> pg_backend_pid();

/* do administaration task in example rename drop clone db*/


/* ENABLE NEW CONNECTIONS */
ALTER DATABASE <SOURCE_DB> WITH ALLOW_CONNECTIONS true;

Rename database

ALTER DATABASE name RENAME TO new_name;

Drop database

DROP DATABASE <dbname> WITH (FORCE);

Clone database

/* CLONE DATABASE TO NEW ONE(TARGET_DB) */
/* CREATE DATABASE [Database to create] WITH TEMPLATE [Database to copy] OWNER [Your username]; */
CREATE DATABASE TARGET_DB WITH TEMPLATE SOURCE_DB OWNER USER_DB;
⚠️ **GitHub.com Fallback** ⚠️