我在 Windows 10 机器上遇到了 PostGreSQL/PostGIS 的奇怪问题。
多年来,我已经多次成功安装 PostGIS,没有出现任何问题,最近一次是上周在工作中的 Windows 10 机器上。我通常使用 QGIS 作为我的客户端,所以对如何配置和操作这些东西有一个公平的想法。
周末,我用 Stackbuilder 下载了最新的 PostGres 11 安装程序,并安装了 PostGres 和 PostGIS。pgAdmin4 似乎显示一切正常,并且示例“postgis_23_sample”数据库存在且正确。
但是,使用 QGIS DB Manager,当我尝试连接到数据库(在端口 5432 上)时,虽然我可以看到示例数据库和公共模式,但我无法创建一个带有几何图形的新表,或加载任何数据(例如一个简单的 shapefile ) 进入数据库。错误消息告诉我“addGeometryColumn”函数不存在。我检查了 PostGIS 扩展是否已安装 - 确实如此。(我再次运行“CREATE EXTENSION postgis”来确认这一点。)
所以,我回到 pgAdmin,并尝试通过 SQL 创建一个带有几何的表,但得到了同样的错误:创建一个没有几何的表就可以了。一旦我尝试创建几何列,我就会收到错误消息。在我看来,PostGres 不知何故没有“找到”PostGIS 扩展。
我在周末卸载并重新安装了 PostGres、PostGIS 和 QGIS 的各种组合 - 但得到了同样的错误。我创建了一个新的 Windows 帐户,并尝试在那里安装堆栈:同样的事情发生了。
我还尝试卸载所有内容,然后安装 Astun 的“便携式 GIS”堆栈。这些是 QGIS 和 PostGIS 的旧版本,但理论上安装程序会将它们配置为一起工作。(至少,这是我过去在工作中使用便携式 GIS 的经验。)在这种情况下,我遇到了关于缺少 AddGeometryColumn 函数的相同错误。
我想知道 PostGIS、QGIS 和其他工具在过去一年左右的各种安装是否留下了一些顽固的配置条目(可能在注册表中?)卸载程序无法删除。这样的事情会扰乱我最近的 PostGres 安装吗?感觉好像有什么东西阻止了数据库客户端在分配的端口上定位 PostGIS 服务。话虽如此,PostGres iteslef 似乎工作正常,所以这可能是胡说八道。
无论如何,如果有人对我如何开始调试和修复此问题有任何想法,我将不胜感激。(与此同时,我将尝试使用 OSGeoLive Lubuntu VM,它至少可以让我完成一些适当的工作——我希望如此。)
谢谢...