类型 "geometry" 在模式中不存在,但扩展存在
type "geometry" does not exist on schema, but extension does
注意:不是 Postgis installation: type “geometry” does not exist
的重复
我正在尝试在名为 test
的新模式上使用 Postgis 几何列创建 table。
首先我运行:
SET search_path TO test;
然后当我尝试 运行 以下语句时:
CREATE TABLE spatials (id serial, name text, geo geometry, PRIMARY KEY (id));
我收到错误 type "geometry" does not exist
我已尝试 运行以下两种方法:
CREATE EXTENSION postgis;
--AND:
CREATE EXTENSION postgis SCHEMA test;
但两者都会导致错误 extension "postgis" already exists
请注意,它在使用 public
模式时工作正常。
这里有什么我遗漏的吗?
听起来 Postgis 安装在 public
架构中而不是 test
架构中。要验证您可以 运行
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 installation: type “geometry” does not exist
的重复我正在尝试在名为 test
的新模式上使用 Postgis 几何列创建 table。
首先我运行:
SET search_path TO test;
然后当我尝试 运行 以下语句时:
CREATE TABLE spatials (id serial, name text, geo geometry, PRIMARY KEY (id));
我收到错误 type "geometry" does not exist
我已尝试 运行以下两种方法:
CREATE EXTENSION postgis;
--AND:
CREATE EXTENSION postgis SCHEMA test;
但两者都会导致错误 extension "postgis" already exists
请注意,它在使用 public
模式时工作正常。
这里有什么我遗漏的吗?
听起来 Postgis 安装在 public
架构中而不是 test
架构中。要验证您可以 运行
SELECT nspname
FROM pg_extension ext
INNER JOIN pg_namespace nsp
ON nsp.oid = ext.extnamespace
WHERE ext.extname = 'postgis';
这将为您提供安装 Postgis 的架构。
然后模式限定类型 public.geometry
或安装 Postgis 的任何模式。