You can't drop postgres database while clients are connected to it. Quite robust way to work around it, is
You can't do it all using only
- Make sure noone can connect to this database
update pg_database set datallowconn = 'false' where datname = 'mydb';
- Force disconnection of all clients connected to this database.
For postgres < 9.2:
SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname = 'mydb';
for postgres versions >= 9.2 changeprocpid
topid
:
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mydb';
- Drop it
DROP DATABASE mydb;
You can't do it all using only
dropdb
utility - which is a simple wrapper around DROP DATABASE
server query.
No comments:
Post a Comment