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

dauxcl2d  于 2023-05-28  发布在  PostgreSQL
关注(0)|答案(7)|浏览(443)

当试图将本地数据获取到Heroku时,我遇到了两个不同版本的pg_dump之间的版本不匹配。
具体来说,我收到了这样的消息:

  1. pg_dump: server version: 9.2.2; pg_dump version: 9.1.4
  2. 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

xlpyo6sf

xlpyo6sf1#

OS X 10.8在/usr/bin目录中附带了pg_dump版本9.1.4,沿着psql和其他作为客户端PostgreSQL工具的程序。这并不意味着安装了PostgreSQL作为服务器(除非您有OS X Server Edition)。所以你不必卸载PostgreSQL,因为它没有安装,最好不要删除/usr/bin中的这些postgres客户端工具,因为它们属于Apple提供的系统。他们只需要靠边站。
由www.example.com提供的包postgres.app包括PostgreSQL服务器和与此服务器相同版本的客户端工具。这些工具安装在/Applications/Postgres.app/Contents/MacOS/bin
要在终端中使用这些而不是Apple的9.1,postgres.app documentation说:

  1. PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"

并将其放入.profile文件中。
一旦你完成了这一步,并运行pg_dump,你就不会再得到错误的版本,因为它将是www.example.com附带的版本postgres.app(目前是9.2.2)。
我有这个设置,它对我来说很好。

ao218c7q

ao218c7q2#

如果你只需要升级你的pg_dump到最新版本,并且你有homebrew和mac,如果应用程序有最新版本,而你的本地pg没有:
brew upgrade postgresql

14ifxucb

14ifxucb3#

如果您使用的是postgresapp 9.3.x,则路径不同。以下是我的工作(由http://sigmyers.com/blog/2013/3/12/postgres-pgdump-version-mismatch-error-postgresapp-postgresappcom提供)

  1. export PG_BIN_PATH="/Applications/Postgres.app/Contents/Versions/9.3/bin/"
  2. PATH=$PG_BIN_PATH:$PATH

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

o4hqfura

o4hqfura4#

我在运行Mountain Lion服务器。我的PostgeSQL服务器版本是9.2.1,默认工具是9.1.5。
我不得不用途:

  1. PATH="/Applications/Server.app/Contents/ServerRoot/usr/bin:$PATH"

才能成功

mfpqipee

mfpqipee5#

是的,有时如果你运行Postgres.app,升级后可能会发生这种情况。确保重新启动Postgres.app -它会更新你的PATH。

d7v8vwbk

d7v8vwbk6#

在我的例子中,我通过Homebrew安装了postgresql,可执行文件如下:/usr/local/opt/postgresql@9.6/bin
或者将转储和恢复执行复制到/Applications/Postgres.app/Contents/SharedSupport文件夹
或者在PdAgmin中,将PG bin Path(在properties -> binary Path中)指向postgre的可执行文件的路径

flmtquvp

flmtquvp7#

在我们的Kubernetes集群中,PostgreSQL-14 DB也有同样的(不匹配)问题。因此,我们删除了当前安装的“postgresql-client-13”,并使用以下代码安装了客户端版本-14
Docker镜像中的apt-get install -y postgresql-client-14
然后,我们能够连接到数据库,并采取备份转储!所以,请按照错误所述修复不匹配。保重!!

相关问题