【问题标题】:Enable PostGIS extension error启用 PostGIS 扩展错误
【发布时间】:2013-10-09 12:43:19
【问题描述】:

我已将 PostGIS 2.0.4 与 PostgreSQL 9.2.4 一起安装,尝试使用以下命令启用空间数据库扩展:

CREATE EXTENSION postgis;

但遇到错误-

错误:必须是球体类型的所有者

这个球体类型是什么?我该如何启用它?

更新:

好吧,我仍然找不到解决方案,所以我不得不删除所有内容并重新安装。现在我收到一个新错误:

错误:无法加载库“/usr/pgsql-9.2/lib/rtpostgis-2.0.so”:libclntsh.so.11.1 无法打开共享对象文件:没有这样的文件或目录。

我没有运气在谷歌上找到答案。 libclntsh.so.11.1 似乎是一个 Oracle 库?为什么跟 PostgreSQL 有关系?

【问题讨论】:

  • spheroid 类型由 PostGIS 提供。在什么操作系统上?你是如何安装 Postgres/PostGIS 的?
  • 我在 RHEL6.2 上通过 rpm 安装了 postgresql,而 postgis 是从源代码手工构建的。我没有做太多配置,只是 ./configure 然后 make -> make install。
  • 嗯,我已经构建了很多次,但我从未见过这个错误。查看trac.osgeo.org/postgis/wiki/UsersWikiInstall 了解不同的构建/安装方法。此外,PGDG RPM 的质量非常好。

标签: postgresql postgis


【解决方案1】:

尝试以数据库超级用户身份登录。在 Linux 上,以下内容应该适用于大多数发行版:

sudo postgres psql [dbname]

然后可以有效地忽略所有权和权限。一般来说,我建议对大多数扩展安装执行此操作,因为这通常需要超级用户权限。

【讨论】:

  • 谢谢,我做到了,但现在得到:ERROR: relation "spatial_ref_sys" already exists。删除该表并运行 CREATE EXTENSION postgis 后,我得到:"geometry_columns" is not a view
【解决方案2】:

我知道这是一个古老的问题,但我希望下次遇到它时在这里得到答案!

删除 表格 spatial_ref_sysgeometry_columns。它们不应该是您的架构中的。在我的例子中,它们被创建为使用 DotNet 从 SQL Server 数据库创建实体框架模型,然后使用 EF 在 Postgres 中重新创建数据库的人工制品。

所以:

sudo postgresql psql [dbname] -c "drop table spatial_ref_sys; drop table geometry_columns; create extension postgis;"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 2022-10-13
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    相关资源
    最近更新 更多