Eu tenho as versões 8.4 e 9.1 do Postgresql instaladas. Para qualquer comando do Postgresql, como especificar uma versão específica do comando a ser executado? (por exemplo, psql
, pg_dump
, pg_ctlcluster
, pg_restore
, ...)
Minha pergunta é motivada pelo desejo de fazer um pg_dump em preparação para uma atualização de 8.4 para 9.1 e quero saber qual versão do pg_dump estou executando.
Estou executando o Ubuntu 10.04 Natty.
Você está no Ubuntu e obviamente tem o Martin Pitt
pg_wrapper
instalado (a julgar porpg_ctlcluster
) que é fornecido pelo pacotepostgresql-common
e vem com os pacotes Debian padrão. Eu uso o mesmo no Debian .Em um sistema Linux, execute
which
no shell para ver qual executável é realmente escolhido:pg_dump
é na verdade um link simbólico parapg_wrapper
, que escolhe dinamicamente a versão apropriada do programa cliente para o cluster de banco de dadospg_dump
com o qual você executa. Cito a página de manual depg_wrapper
:IOW, a versão correta deve ser escolhida automaticamente - a menos que você tenha estragado sua instalação de alguma forma. Você sempre pode adicionar a opção
--cluster
de ser específico.eu uso
as soluções anteriores não funcionam para mim no Debian buster e no superior. Acabei criando por scripts próprios que deveriam substituir os binários instalados no
/usr/bin/
pacote.aqui está o script para pg_dump
Espero que seja útil para alguém. Basta alterar pg_dump para psql ou qualquer outro binário pg específico da versão e você obterá o script para esse binário.
Observe que você deve aplicá-los sempre que o
postgresql-client-common
pacote estiver atualizandoaqui está como eu os aplico
No Ubuntu 20.04: