【发布时间】:2015-04-09 15:26:34
【问题描述】:
我正在尝试为我们的一种产品构建一个带有 PostgreSQL 和 PostGIS 数据库的 Docker 映像。尽管基于 another PostGIS image 构建图像(和容器)并不难且有效。但是,在添加用于构建数据库的 ddl 时,我遇到了问题。
我不断收到消息:ERROR: type "geometry" does not exist。因此,我在互联网上阅读和阅读,主要根源似乎是我没有正确初始化 PostGIS Extensions。因此,我在模板表上执行此操作并运行SELECT postgis_full_version() 返回POSTGIS="2.1.3 r12547" GEOS="3.4.2-CAPI-1.8.2 r3921" PROJ="Rel. 4.8.0, 6 March 2012" GDAL="GDAL 1.10.1, released 2013/08/26" LIBXML="2.9.1" LIBJSON="UNKNOWN" TOPOLOGY RASTER,这似乎没问题。但是还是没有骰子...
在通过\dT 检查公共架构中的可用数据类型后,我发现geometry 类型可用。这就是为什么我在这里有点不知所措,因为一切似乎都很好。
任何人有任何想法我可以如何解决这个问题,或者我可以寻找什么?
使用过的版本:
- Ubuntu 14.04(可信)
- PostgreSQL 版本:9.3
- PostGIS 版本:2.1
编辑:我再次尝试创建扩展,而不是停止 PostgreSQL,运行 ldconfig(重新加载库)并再次启动 PostgreSQL,但同样的问题仍然存在。
【问题讨论】:
-
它将 postgis 安装到什么模式?
show search_path;中是否列出了该架构? -
你能在
ldconfig -v的输出中找到postgis/gdal/geos/proj4 扩展吗? -
您在哪个数据库中安装了 PostGIS?您在哪个数据库中遇到错误?
-
@wildplasser libproj*.so、libgeos*.so、libgeos_c*.so 和 libgdal*.so 都可用。我似乎找不到任何 postgis*.so 库。
-
@MikeSherrill'CatRecall' 在一个新数据库中,基于我创建并添加了扩展的
template_postgis。在尝试再次加载扩展后,我收到一个关于扩展已加载的错误。
标签: postgresql docker gis geospatial postgis