Puoi impedire connessioni future:
REVOKE CONNECT ON DATABASE thedb FROM public;
(ed eventualmente altri utenti/ruoli; vedere \l+
in psql
)
Puoi quindi terminare tutte le connessioni a questo db tranne il tuo:
SELECT pid, pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = current_database() AND pid <> pg_backend_pid();
Nelle versioni precedenti pid
è stato chiamato procpid
quindi dovrai affrontarlo.
Poiché hai revocato CONNECT
diritti, qualunque cosa stesse tentando di connettersi automaticamente non dovrebbe più essere in grado di farlo.
Ora potrai eliminare il DB.
Questo non funzionerà se stai utilizzando connessioni di superutente per le normali operazioni, ma se lo fai devi prima risolvere il problema.
Dopo aver terminato di eliminare il database, se crei di nuovo il database, puoi eseguire il comando seguente per ripristinare l'accesso
GRANT CONNECT ON DATABASE thedb TO public;