web-dev-qa-db-ja.com

pg_dumpが機能しない-$ PATHの順序を変更する必要がありますか?

Railsアプリ(最近スキーマタイプを変更しました)で移行中に不一致エラーが発生しているため、最新バージョンのpg_dumpを取得するように$ PATHを設定しようとしています。 SQLへ)。

/etc/profile.dにpg_dump.shという新しいファイルを追加し、その中に次のように配置しました。

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

Echo $ PATHを見ると、次のようになります。

_/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_

そして、私はまだエラーが発生します。

順序を変更する必要がありますか?もしそうなら、どのようにアイデアはありますか?


'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_

そして、 'which pg_dump'の出力:

_/usr/bin/pg_dump_


Cap'deploy:migrate 'の実行に関するエラーメッセージ:

_ ** [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
_

'pg_dump --version'の出力:

pg_dump (PostgreSQL) 8.4.11

1
A4J

迅速で汚い解決策は、/ etc/profile.d /pg_dump.shを編集することです。

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

新しいバージョンをシンボリックリンクする の方法を説明するこの回答が好きです。 (便宜上、以下に転載):

新しいバージョンのpg_dumpがPATHにありません。必要なのは、古いバージョンを削除し、新しいバージョンをPATH内の任意のディレクトリ(/ usr/binなど)にシンボリックリンクすることだけです。

次のように:

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

新しいpg_dumpを見つけるには、postgresqlのインストール場所を知る必要があります。自作を使用した場合は、/ usr/local/Cellar/postgresql/9.2.2/bin(またはバージョンが何であれ)です。

1
Danny