我已从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。
答案 0 :(得分:2)
使用brew edit postgis
更改安装脚本中对postgresql
的{{1}}引用,然后运行postgresql93
。您可能还必须使用brew install postgis
或brew link postgresql93
链接/取消链接postgresql。