如何修复pg_dump版本不匹配错误?

use*_*171 26 postgresql uninstall pg-dump osx-mountain-lion

当尝试将本地数据发送到Heroku时,我遇到两个不同版本的pg_dump之间的版本不匹配.

具体来说,我收到此消息:

pg_dump: server version: 9.2.2; pg_dump version: 9.1.4
pg_dump: aborting because of server version mismatch
Run Code Online (Sandbox Code Playgroud)

我发现其他人遇到了这个问题,但是他们不了解实施所提出的解决方案.(我是Ruby on Rails,PostgreSQL,Heroku和Mac的新手!我非常喜欢在我去的时候玩耍.)

如果我在我的本地计算机上卸载了所有PostgreSQL并从http://postgresapp.com/上彻底安装了PostgreSQL 9.2.2,我想我可能会简化我的生活,但我不知道如何去做卸载.

我正在运行Mac OS X Mountain Lion 10.8.2.

drj*_*nco 30

如果你只需要将你的pg_dump升级到最新版本并且你有自制软件和mac,如果应用程序有最新版本而你的本地pg没有:

brew upgrade postgresql

  • 这是最简单的解决方案,在深入了解其他有效方法之前,首先尝试(在OS X 10.9上对我有用). (2认同)
  • 不幸的是它不会更新 pg_dump。运行此命令后,我在执行 pg_dump: pg_dump: error: server version: 13.1; 时仍然得到```` pg_dump 版本:12.2 (Debian 12.2-2.pgdg90+1) ``` (2认同)

Dan*_*ité 29

OS X 10.8随目录中的pg_dump9.1.4版本/usr/bin以及客户端 PostgreSQL工具的psql其他程序一起提供.这并不意味着安装了PostgreSQL作为服务器(除非你有OS X Server Edition).因此,您不必卸载PostgreSQL,因为它没有安装,最好不要删除这些postgres客户端工具,因为它们属于Apple提供的系统.他们只需要侧面步./usr/bin

postgres.app提供的软件包包括PostgreSQL服务器和与此服务器相同版本的客户端工具.安装这些工具/Applications/Postgres.app/Contents/MacOS/bin

当您在终端中工作时,要使用这些而不是来自Apple的9.1,postgres.app 文档说要做:

PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

并把它放在你的.profile文件中.

一旦你完成了并且你运行了pg_dump,你就不应该再得到错误版本的错误,因为它将是postgres.app(目前为9.2.2)附带的错误.

我有这个设置,它适用于我.

  • 如果使用图形安装程序(目前为v 9.2.4),则pg_dump位于/Library/PostgreSQL/9.2/bin/pg_dump (4认同)
  • 就像@MichaelWasser说的那样.如果下载图形编辑器,请确保将.profile或.bash_profile中的路径设置为`PATH =/Library/PostgreSQL/9.2/bin /:$ PATH` (3认同)

use*_*092 7

如果您使用的是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
Run Code Online (Sandbox Code Playgroud)

点击此处查看最新路径:http://postgresapp.com/documentation/cli-tools.html