pg_dump não está funcionando - eu preciso alterar a ordem de $ PATH?

1

Estou tentando definir o $ PATH para pegar a versão mais recente do pg_dump, já que estou recebendo um erro de incompatibilidade ao fazer uma migração no meu aplicativo Rails (recentemente alterei o tipo de esquema para SQL).

Eu adicionei um novo arquivo em /etc/profile.d chamado pg_dump.sh, e dentro desse put:

PG_DUMP=/usr/pgsql-9.1
export PG_DUMP
PATH=$PATH:$PG_DUMP/bin
export PATH

Olhando para o echo $ PATH, recebo:

/usr/local/rvm/gems/ruby-1.9.3-p194/bin:/usr/local/rvm/gems/ruby-1.9.3-p194@global/bin:/usr/local/rvm/rubies/ruby-1.9.3-p194/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/pgsql-9.1/bin:/root/bin

E ainda recebo o erro.

Preciso alterar o pedido? Em caso afirmativo, como?

Saída de 'ls /usr/pgsql-9.1/bin':

clusterdb droplang pg_archivecleanup pg_ctl pg_standby psql createdb dropuser pg_basebackup pg_dump pg_test_fsync reindexdb createlang ecpg pgbench pg_dumpall pg_upgrade vacuumdb createuser initdb pg_config pg_resetxlog postgres vacuumlo dropdb oid2name pg_controldata pg_restore postmaster

E a saída de 'which pg_dump':

/usr/bin/pg_dump

Mensagem de erro no limite de execução 'implantar: migrar':

 ** [out :: 46.4.9.199] pg_dump: server version: 9.1.4; pg_dump version: 8.4.11
 ** [out :: 46.4.9.199] pg_dump: aborting because of server version mismatch
 ** [out :: 46.4.9.199] rake aborted!
 ** [out :: 46.4.9.199] Error dumping database

saída de 'pg_dump --version':

pg_dump (PostgreSQL) 8.4.11

    
por A4J 11.09.2012 / 21:52

2 respostas

1

Uma solução rápida e suja seria editar /etc/profile.d/pg_dump.sh:

PG_DUMP=/usr/pgsql-9.1
export PG_DUMP
PATH=$PG_DUMP/bin:$PATH
export PATH
    
por 11.09.2012 / 23:13
1

Eu prefiro essa resposta que explica como criar um link simbólico para o novo versão . (reimpressão abaixo por conveniência):

sua nova versão do pg_dump não está no seu PATH, tudo que você precisa fazer é remover a versão antiga, e criar uma nova ligação simbólica para qualquer diretório no seu PATH, por exemplo, / usr / bin.

Da seguinte forma:

sudo ln -s /actual/new/pg_dump /usr/bin/pg_dump

Para encontrar o novo pg_dump, você precisa saber a localização da instalação do postgresql. Se você usou homebrew, é /usr/local/Cellar/postgresql/9.2.2/bin (ou qualquer que seja sua versão)

    
por 23.02.2013 / 18:05