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