当尝试将本地数据传输到 Heroku 时,我遇到了两个不同版本的 pg_dump 之间的版本不匹配问题。
具体来说,我收到了这条消息:
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 在 /usr/bin
目录中附带了 pg_dump
版本 9.1.4,以及 psql
和其他程序客户端 PostgreSQL 工具。这并不意味着安装了 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 ).
我有这个设置,对我来说工作正常。
关于postgresql - 如何修复 pg_dump 版本不匹配错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14168920/