PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Errore di rilascio del database di Postgres:pq:impossibile eliminare il database attualmente aperto

Perché stai cercando di eseguire dropDb comando sul database, a cui hai una connessione aperta.

Secondo la documentazione di Postgres:

Questo ha senso, perché quando si elimina l'intero database, tutte le connessioni aperte che fanno riferimento a quel database diventano non valide, quindi l'approccio consigliato è connettersi a un database diverso ed eseguire nuovamente questo comando.

Se stai affrontando una situazione in cui un client diverso è connesso al database e vuoi davvero eliminare il database, puoi disconnettere forzatamente tutto il client da quel particolare database.

Ad esempio, per disconnettere forzatamente tutti i client dal database mydb :

Se PostgreSQL <9.2

SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname = 'mydb';

Altro

SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mydb';

Nota: Questo comando richiede i privilegi di superutente.

Quindi, puoi connetterti a un database diverso ed eseguire dropDb comando di nuovo.