Тип "геометрия" не существует на схеме, но расширение делает - PullRequest
0 голосов
/ 29 марта 2019

Примечание: не является дубликатом Установка Postgis: тип «geometry» не существует

Я пытаюсь создать таблицу с использованием геометрических столбцов Postgis в новой схеме с именем test.

Сначала я побежал:

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.

Есть ли что-то, что я здесь скучаю?

1 Ответ

3 голосов
/ 29 марта 2019

Похоже, 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...