postgresql 9.3.3 homebrew os x 10.10的postgis 2.1不兼容

时间:2015-06-22 09:39:11

标签: postgresql osx-yosemite postgis

我已从OS X 10.9升级到10.10 Yosemite。我使用postgis 2.1运行postgresql 9.3.3。在升级到OS X 10.10之前我没有做过pgdump(我知道,我知道,杀了我......)但我有原始的数据目录。我做了一个brew安装postgresql并得到了9.4.4。所以我用Homebrew安装了Postgresql 9.3.9(我能找到的唯一9.3版本)。还可以安装postgis。然后我得到Postgisql 9.4.4的Postgis版本2.1。我尝试安装postgis20,但这对我的数据库不起作用。

当我启动Postgresql 9.3.3时,我可以看到我的所有数据库,但是当我浏览时,我收到错误:

ERROR:  could not access file "$libdir/postgis-2.1": No such file or directory

我尝试链接到$ libdir目录中的posts-2.1,但后来收到此消息:

ERROR:  incompatible library     "/usr/local/Cellar/postgresql93/9.3.9/lib/postgis-2.1.so": version mismatch
DETAIL:  Server is version 9.3, library is version 9.4.

所以很明显我需要postgis-2.1 for Postgresql 9.3但我不知道如何解决这个问题。

如果我尝试运行pg_dumpall,我会收到此错误(显然我猜):

➜ ./pg_dumpall >> old_backup.sql                                                                                             
pg_dump: Dumping the contents of table "darwin_test" failed: PQgetResult() failed.
pg_dump: Error message from server: ERROR:  could not load library "/usr/local/Cellar/postgresql/9.3.3/lib/postgis-2.1.so": dlopen(/usr/local/Cellar/postgresql/9.3.3/lib/postgis-2.1.so, 10): Symbol not found: _json_tokener_errors
Referenced from: /usr/local/Cellar/postgresql/9.3.3/lib/postgis-2.1.so
Expected in: /usr/local/lib/libjson-c.2.dylib
in /usr/local/Cellar/postgresql/9.3.3/lib/postgis-2.1.so

那么如何使用postgresql 9.3.3再次使用postgis-2.1? 在自制软件中,我只为postgresql94找到了postgis-2.1。

1 个答案:

答案 0 :(得分:2)

使用brew edit postgis更改安装脚本中对postgresql的{​​{1}}引用,然后运行postgresql93。您可能还必须使用brew install postgisbrew link postgresql93链接/取消链接postgresql。