yet*_*tty 84 postgresql geometry postgis
我正在尝试用Postgis创建表.我是通过这个页面来做的.但是当我导入postgis.sql文件时,我收到了很多错误:
ERROR: type "geometry" does not exist
Run Code Online (Sandbox Code Playgroud)
有谁知道我该怎么办?
Kri*_*ota 168
我有同样的问题,但它通过运行以下代码修复
CREATE EXTENSION postgis;
Run Code Online (Sandbox Code Playgroud)
详细地,
Bre*_*Nee 21
你可以从终端做到:
psql mydatabasename -c "CREATE EXTENSION postgis";
Run Code Online (Sandbox Code Playgroud)
Mik*_*e T 18
要让psql在第一个错误上停止,请使用-v ON_ERROR_STOP=1(默认情况下是关闭的,这就是为什么你会看到很多错误).例如:
psql -U postgres -d postgis -v ON_ERROR_STOP=1 -f postgis.sql
Run Code Online (Sandbox Code Playgroud)
实际错误类似于"无法加载库X",这可能会因您的情况而异.作为猜测,请在安装sql脚本之前尝试此命令:
ldconfig
Run Code Online (Sandbox Code Playgroud)
(您可能需要使用前缀,sudo具体取决于您的系统).此命令更新所有系统库(例如GEOS)的路径.
lud*_*wig 18
如果加载了Postgis-Extension,那么由于缺少公共模式的搜索路径,您的SQL可能找不到几何类型.
尝试
SET search_path = ...,public;
在你的scsript的第一行.(替换...与其他所需的搜索路径)
如果您尝试在另一个架构上使用 postgis 类型而不是public.
如果您正在使用 postgis 2.3 或更高版本创建自己的架构并遇到此错误,请按照此处所述执行以下操作:
CREATE SCHEMA IF NOT EXISTS my_schema;
CREATE extension postgis;
UPDATE pg_extension
SET extrelocatable = TRUE
WHERE extname = 'postgis';
ALTER EXTENSION postgis
SET SCHEMA my_schema;
ALTER EXTENSION postgis
UPDATE TO "2.5.2next";
ALTER EXTENSION postgis
UPDATE TO "2.5.2";
SET search_path TO my_schema;
Run Code Online (Sandbox Code Playgroud)
然后您可以继续使用 postgis 功能。
| 归档时间: |
|
| 查看次数: |
55820 次 |
| 最近记录: |