31 Jan 2020
Muitas vezes precisamos realizar alguma operação no banco de dados, seja executar uma query ou atualizar o sistema então é retornado um erro informando que a tabela já está em uso, checamos e aparentemente nenhuma aplicação está aberta. Para isso podemos usar a query:
select * from pg_stat_activity;
O Postgres vai listar todas as conexões ativas no momento, são exibidas informações como o nome da aplicação que está acessando(application_name), o ip da máquina(client_addr), qual query está sendo executada(query) e uma delas é o ID do processo(pid).
Para finalizar a conexão desejada basta usar a seguinte query passando o pid como parâmetro. Dessa forma será encerrada a conexão que está ativa.
select pg_terminate_backend(pid);
Também podemos encerrar todas mantendo apenas a sua conexão ativa.
select pg_terminate_backend(pid) from pg_stat_activity where pid <> pg_backend_pid();