Herokuにローカルデータを取得しようとすると、pg_dumpの2つの異なるバージョン間でバージョンの不一致が発生します。
具体的には、私はこのメッセージを受け取っています:
pg_dump: server version: 9.2.2; pg_dump version: 9.1.4
pg_dump: aborting because of server version mismatch
私はこの問題を抱えている他の人を見つけましたが、提案されたソリューションを実装するのに十分な知識がありません。 (私はRuby on Rails、PostgreSQL、Heroku、およびMacが初めてです!私が行くにつれて物事を拾い読みする段階で非常に多くです。)
ローカルマシン上のすべてのPostgreSQLをアンインストールし、 http://postgresapp.com/ からPostgreSQL 9.2.2のクリーンインストールを再開すると、人生が簡単になると考えていました。アンインストールの実行方法を知っている。
Mac OS X Mountain Lion 10.8.2を実行しています。
OS X 10.8には、pg_dump
ディレクトリに/usr/bin
バージョン9.1.4が付属し、psql
およびclient-sidePostgreSQLツール。サーバーとしてのPostgreSQLがインストールされているという意味ではありません(OS X Server Editionがない場合)。 PostgreSQLはインストールされていないので、アンインストールする必要はありません。また、/usr/bin
にあるこれらのpostgresクライアントツールはAppleが出荷したシステムに属しているため、削除しない方が良いでしょう。彼らはただ傍観する必要があります。
Postgres.appが提供するパッケージには、PostgreSQLサーバーと、このサーバーと同じバージョンのクライアント側ツールの両方が含まれています。これらのツールは/Applications/Postgres.app/Contents/MacOS/bin
にインストールされます
ターミナルで作業するときにAppleの9.1の代わりにこれらを使用するには、postgres.app documentation を実行するように指示します。
PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"
.profile
ファイルに入れます。
これを実行してpg_dump
を実行すると、postgres.app(現在9.2.2)に付属しているため、間違ったバージョンであるというエラーは表示されなくなります。
私はこのセットアップを持っていますが、私にとってはうまくいきます。
Pg_dumpを最新バージョンにアップグレードするだけでhomebrewとmacがある場合、アプリに最新バージョンがあり、ローカルpgにない場合:
brew upgrade postgresql
Postgresapp 9.3.xを使用している場合、パスは異なります。以下は私のために働いた( http://sigmyers.com/blog/2013/3/12/postgres-pgdump-version-mismatch-error-postgresapp-postgresappcom の礼儀)
export PG_BIN_PATH="/Applications/Postgres.app/Contents/Versions/9.3/bin/"
PATH=$PG_BIN_PATH:$PATH
最新のパスについてはこちらをご覧ください: http://postgresapp.com/documentation/cli-tools.html
Mountain Lion Serverを実行しています。 PostgreSQLサーバーのバージョンは9.2.1で、デフォルトのツールは9.1.5です。
私は使用しなければなりませんでした:
PATH="/Applications/Server.app/Contents/ServerRoot/usr/bin:$PATH"
それを機能させるために。
ええ、Postgres.appを実行すると、アップグレード後に発生することがあります。必ずPostgres.appを再起動してください-PATHが更新されます。
私の場合、postgresqlをhomebrew経由でインストールしており、実行可能ファイルは/usr/local/opt/[email protected]/binです。
または、ダンプをコピーし、実行を/Applications/Postgres.app/Contents/SharedSupportフォルダーに復元します
またはPdAgminでは、PG binパス(プロパティ->バイナリパス)をpostgreの実行可能ファイルのパスにポイントします