Eu instalei dois servidores PostgreSQL no meu computador. Um é 9.1 e o outro é 9.3. Eu preciso dos dois servidores instalados.
Quando executo o pg_dump, no entanto, recebo um erro de incompatibilidade de versão:
server version: 9.3.6; pg_dump version: 9.1.15
pg_dump: aborting because of server version mismatch
Como posso resolver isso? (Não é possível desinstalar nenhuma das versões - instalei o 9.1 primeiro e o 9.3 muitos meses depois - preciso dos dois servidores de banco de dados instalados).
postgresql
Luis Masuelli
fonte
fonte
pg_dump
. Ambos estão instalados, mas apenas um é o padrão. Vejaupdate-alternatives
os caminhos oudpkg -L
o pacote do cliente postgresql para ver onde eles estão. Não tenha acesso imediato a uma caixa do Ubuntu para mostrar você mesmo.PATH
variável de ambiente com a qual o aplicativo é executado.Respostas:
TL; DR : se as duas instâncias do PostgreSQL forem gerenciadas pelos pacotes Ubuntu (como deveriam), basta usar a
--cluster
opção para selecionar a instância do PostgreSQL para backup, e ela escolherá automaticamente a versão correspondente do pg_dump:pg_dump --cluster 9.1/main [other pg_dump options]
ou
pg_dump --cluster 9.3/main [other pg_dump options]
.main
é apenas um valor padrão, executepg_lsclusters
para ver seus nomes reais naCluster
coluna.Como funciona: como instalado pelos pacotes do Ubuntu,
/usr/bin/pg_dump
é na verdade um link para/usr/share/postgresql-common/pg_wrapper
, cujo objetivo é exatamente selecionar a instância correta e executar o binário correspondente.--cluster
não existe nos comandos padrão do PostgreSQL, é uma adição ao Debian / Ubuntu que visa solucionar esse problema de múltiplas versões / caminhos múltiplos.Este é o mesmo para
psql
,createdb
,createuser
, etc. cerca de 18 comandos Postgres em/usr/bin
são realmente gerido pelopg_wrapper
.Veja man pg_wrapper para mais.
fonte
version
= versão principal do postgresql emain
= nome padrão do cluster. Veja as páginas de manual de pg_lsclusters e pg_wrapper.Você pode usar:
para encontrar suas versões
pg_dump
no meu caso:/usr/pgsql-9.6/bin/pg_dump
então a seguir podemos fazer:
para atualizar para o que precisamos
fonte