Drop a PostgreSQL database if there are active connections to it

Ao tentar dropa um banco de dados do PostgreSQL, “target_db” e você encontrará o erro abaixo:

postgres=# DROP DATABASE target_db;
    ERROR:  database "target_db" is being accessed by other users
    DETAIL:  There is 1 other session using the database.
    postgres=#

Se você ficar acima do erro, há 1 conexão ativa aberta para target_db, portanto, não será possível excluir o banco de dados selecionado até que a conexão ativa seja fechada. Portanto, para excluir o banco de dados selecionado primeiro, precisamos fechar todas as conexões existentes no banco de dados selecionado. Isso pode ser feito com a consulta como abaixo

SELECT pg_terminate_backend(pg_stat_activity.pid)
    FROM pg_stat_activity
    WHERE pg_stat_activity.datname = 'target_db'
      AND pid <> pg_backend_pid();

Uma vez acima, a consulta é executada. Podemos eliminar o db de destino sem nenhum erro executando a consulta abaixo

    DROP DATABASE target_db
Resultado de imagem para postgres drop"

Renato Lucena

Developer PHP, Laravel. Goiania-GO https://www.linkedin.com/in/renato-de-oliveira-lucena-33777133/

Você pode gostar...