Você pode impedir conexões futuras:
REVOKE CONNECT ON DATABASE thedb FROM public;
(e possivelmente outros usuários/funções; consulte
\l+
em psql
) Você pode então encerrar todas as conexões com este banco de dados, exceto a sua:
SELECT pid, pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = current_database() AND pid <> pg_backend_pid();
Em versões mais antigas
pid
foi chamado procpid
então você terá que lidar com isso. Desde que você revogou
CONNECT
direitos, o que estava tentando se conectar automaticamente não deve mais ser capaz de fazê-lo. Agora você poderá descartar o DB.
Isso não funcionará se você estiver usando conexões de superusuário para operações normais, mas se estiver fazendo isso, precisará corrigir esse problema primeiro.
Depois de terminar de descartar o banco de dados, se você criar o banco de dados novamente, poderá executar o comando abaixo para restaurar o acesso
GRANT CONNECT ON DATABASE thedb TO public;