PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Postgres drop database error:pq:não é possível descartar o banco de dados atualmente aberto


Porque você está tentando executar dropDb comando no banco de dados, ao qual você tem conexão aberta.

De acordo com a documentação do postgres:

Isso faz sentido, porque quando você descarta o banco de dados inteiro, todas as conexões abertas que fazem referência a esse banco de dados se tornam inválidas, portanto, a abordagem recomendada é conectar-se a um banco de dados diferente e executar este comando novamente.

Se você estiver enfrentando uma situação em que um cliente diferente está conectado ao banco de dados e você realmente deseja descartar o banco de dados, você pode forçar a desconexão de todos os clientes desse banco de dados específico.

Por exemplo, para forçar a desconexão de todos os clientes do banco de dados mydb :

Se PostgreSQL <9.2

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

Outro

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

Observação: Este comando requer privilégios de superusuário.

Em seguida, você pode se conectar a um banco de dados diferente e executar o dropDb comando novamente.