Sql “类型”;“几何学”;架构上不存在,但扩展不存在
注:不可复制 我正在尝试在名为Sql “类型”;“几何学”;架构上不存在,但扩展不存在,sql,postgresql,postgis,database-schema,Sql,Postgresql,Postgis,Database Schema,注:不可复制 我正在尝试在名为test的新模式上使用Postgis几何列创建一个表 首先我跑: 设置要测试的搜索路径; 然后,当我尝试运行以下语句时: 创建表空间(id序列、名称文本、地理几何体、主键(id)); 我发现错误类型“geometry”不存在 我已尝试运行以下两项: 创建扩展postgis; --以及: 创建扩展postgis模式测试; 但这两种情况都会导致错误扩展名“postgis”已经存在 请注意,当使用public模式时,它可以正常工作 这里有什么我遗漏的吗?听起来Pos
test
的新模式上使用Postgis几何列创建一个表
首先我跑:
设置要测试的搜索路径;
然后,当我尝试运行以下语句时:
创建表空间(id序列、名称文本、地理几何体、主键(id));
我发现错误类型“geometry”不存在
我已尝试运行以下两项:
创建扩展postgis;
--以及:
创建扩展postgis模式测试;
但这两种情况都会导致错误扩展名“postgis”已经存在
请注意,当使用public
模式时,它可以正常工作
这里有什么我遗漏的吗?听起来Postgis安装在
公共
模式中,而不是测试
模式中。要验证您是否可以运行
SELECT nspname
FROM pg_extension ext
INNER JOIN pg_namespace nsp
ON nsp.oid = ext.extnamespace
WHERE ext.extname = 'postgis';
这将为您提供安装Postgis的模式
然后模式限定类型,如
public.geometry
或安装Postgis的任何模式。听起来Postgis安装在public
模式中,而不是test
模式中。要验证您是否可以运行
SELECT nspname
FROM pg_extension ext
INNER JOIN pg_namespace nsp
ON nsp.oid = ext.extnamespace
WHERE ext.extname = 'postgis';
这将为您提供安装Postgis的模式
然后,schema限定类型,如
public.geometry
或安装了任何schema Postgis的类型。谢谢。可以在多个模式上安装扩展吗?据我所知,不可以。可以:DROP extension postgis;将搜索路径设置为public;创建扩展postgis
@Kartik这将删除扩展并在public
架构中再次创建它。我认为在多个模式中不可能有posgis
扩展。但是您可以根据“谢谢”更改模式。可以在多个模式上安装扩展吗?据我所知,不可以。可以:DROP extension postgis;将搜索路径设置为public;创建扩展postgis
@Kartik这将删除扩展并在public
架构中再次创建它。我认为在多个模式中不可能有posgis
扩展。但是您可以根据需要更改模式