我在PostgreSQL 9.2.4中安装了PostGIS 2.0.4,试图通过以下命令启用空间数据库扩展:
CREATE EXTENSION postgis;
但遇到错误-
错误:必须是椭球类型的所有者
此球体类型是什么?我如何启用它?
嗯,我仍然找不到解决方案,因此我不得不删除所有内容并重新安装。现在,我收到一个新的错误消息:
错误:无法加载库“ /usr/pgsql-9.2/lib/rtpostgis-2.0.so”:libclntsh.so.11.1无法打开共享库文件:没有这样的文件或目录。
我没有运气,谷歌对此没有答案。似乎libclntsh.so.11.1是Oracle库?为什么它与PostgreSQL有关?
尝试以db超级用户身份登录。在Linux上,以下应该可以在大多数发行版中使用:
sudo postgres psql [dbname]
然后可以有效地忽略所有权和权限。通常,我建议对大多数扩展安装都执行此操作,因为无论如何,这通常都需要超级用户特权。
我知道这是一个古老的问题,但是下次我想在这里给出答案I遇到它!
丢弃表 spatial_ref_sys
和geometry_columns
。在您的架构中,它们不应为tables。就我而言,它们是通过使用DotNet从SQL Server数据库创建实体框架模型,然后使用EF在Postgres中重新创建数据库的人工产物而创建的。
所以:
sudo postgresql psql [dbname] -c "drop table spatial_ref_sys; drop table geometry_columns; create extension postgis;"