我正在OSX上工作,并通过Homebrew安装了postgres。我刚刚将Postgres从v11升级到v13。现在,我尝试使用以下命令更新数据库文件:
brew postgresql-upgrade-database此操作失败,查看日志时,错误为:
pg_dump: error: query failed: ERROR: could not access file "$libdir/postgis-2.5": No such file or directory如果我执行brew info postgis,那么我会看到:
% brew info postgis
postgis: stable 3.0.2 (bottled), HEAD
Adds support for geographic objects to PostgreSQL
https://postgis.net/
/usr/local/Cellar/postgis/3.0.2_1 (435 files, 29.7MB) *
Poured from bottle on 2020-11-12 at 23:15:12
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/postgis.rb
License: GPL-2.0-or-later
==> Dependencies
Build: gpp ✘, pkg-config ✔
Required: gdal ✔, geos ✔, json-c ✔, pcre ✔, postgresql ✔, proj ✔, protobuf-c ✔, sfcgal ✔
==> Options
--HEAD
Install HEAD version
==> Analytics
install: 11,064 (30 days), 26,959 (90 days), 80,033 (365 days)
install-on-request: 10,946 (30 days), 26,628 (90 days), 78,351 (365 days)
build-error: 0 (30 days)所以我猜Postgis3.0.2是作为升级过程的一部分安装的,而pg_dump (数据库文件升级所需要的)找不到Postgis2.5。
我该怎么办?我想我可以暂时把postgis2.5重新安装到$libdir --但是怎么做呢?
pg_config --pkglibdir揭示了$libdir就是/usr/local/lib/postgresql。如果我列出该目录中的文件,我可以看到它包含postgis-3.so,但不包含postgis-2.5.so。
注意:我现在也不能用psql访问postgres --我看到了可怕的psql: error: could not connect to server: could not connect to server: No such file or directory。但是,brew services list告诉我postgresql正在运行。
发布于 2020-11-13 11:28:35
升级PostGIS并非易事(请参阅文档),使用此发行版的自动升级可能会搞砸您的安装。
对您的PostgreSQL数据目录进行完整备份,然后卸载PostgreSQL v13,再次安装v11和PostGIS 2.5,然后查看是否可以让数据库再次工作。
然后按照PostGIS手册中的升级过程进行操作。
发布于 2020-12-16 19:02:53
如果您尚未卸载错误的Postgis版本,请执行以下操作:
brew remove postgis首先转到Postgis公式的最后2.5版本:
复制代码。
将此代码粘贴到机器上的自制Postgis公式上:
pbpaste > $(find $(brew --repository) -name postgis.rb)然后使用以下公式再次安装Postgis:
brew install postgisPin Postgis以防止意外升级:
brew pin postgis这应该会为您获得正确的Postgis版本。
发布于 2020-11-27 15:28:42
在PostGIS站点上链接的用户维基上有一个兼容性/支持列表,它似乎表明从Postgres v13开始,PostGIS的最低版本是3.0
如果你因为任何原因被困在PostgresV2.5上,Postgres V12看起来是你最好的选择。
https://stackoverflow.com/questions/64813344
复制相似问题