Ошибка PostGIS: тип "география" не существует - PullRequest
15 голосов
/ 09 августа 2011

Я только что обновил свою машину для разработки до Windows 7 и поэтому переустанавливаю PostgreSQL и PostGIS. Я использовал установщик Postgres Plus , как рекомендовано на сайте Postgres, и следовал этому руководству для установки. Я создал базу данных, используя template_postgis, и приложение, которое я сейчас разрабатываю, смогло подключиться к базе данных без проблем.

Однако мой старый код не может создавать таблицы с использованием PostGIS Geography, как это было раньше. Например, когда я пытаюсь создать следующую таблицу:

CREATE TABLE test_area (
    id SERIAL PRIMARY KEY,
    name VARCHAR(1000),
    area GEOGRAPHY(POLYGON, 4326),
    start_time DATE,
    end_time DATE
)

Я получаю следующую ошибку:

ERROR:  type "geography" does not exist
LINE 4:         area GEOGRAPHY(POLYGON, 4326),
                     ^

Если я загляну в базу данных в обозревателе объектов pgAdmin III, то увижу кучу функций Geometry, поэтому установка, кажется, прошла правильно. Я не уверен, в чем может быть моя проблема. Может ли установщик установить только PostGIS Geometry, но не Geography?

Ответы [ 4 ]

33 голосов
/ 23 сентября 2014

Я тоже сталкивался с этой проблемой и раньше, но мне не помог ответ на сайте ГИС.

У меня установлен Postgresql через Homebrew, а также установлено приложение Postgresql.Что касается PostGIS, однако, я установил его через Homebrew.

Когда я столкнулся с этой проблемой, я запустил приложение Postgresql вместо того, чтобы запускать его в терминале, поэтому, конечно, вы получите эту ошибку PostGIS, потому что PostGIS былникогда не устанавливается в приложении Postgresql.Как только я запустил Postgresql в Терминале, он заработал для меня.

Обновление от 25.09.2014:

Возможно, вы не создали расширение для PostGIS в своембаза данных:

$ psql

psql> \c databaseName;

psql> CREATE EXTENSION Postgis;
3 голосов
/ 10 августа 2011

Может быть, есть некоторые проблемы с postgis, сначала посмотрите, существует ли тип "география"? так же, как следующие;

db_lbs => \ dT geography

        List of data types
 Schema |   Name    | Description 
--------+-----------+-------------
 lbs    | geography | 
(1 row)

Кстати, обратите внимание на текущий search_path;

Я полагаю, что тип "география" не существует в вашей схеме, может, он существует в общедоступной схеме, Так что проверь сначала。

2 голосов
/ 10 августа 2011

Я получил ответ на свой вопрос на сайте ГИС . У меня был установлен PostGIS 1.4, но Geography не был добавлен до PostGIS 1.5. Поэтому мне пришлось удалить то, что у меня было, и переустановить Postgres. У меня были большие трудности с поиском версии, включающей PostGIS 1.5. Мне дали совет не использовать проприетарное ПО «Postgres Plus», так как EnterpriseDB тратит время на портирование самых современных надстроек и тому подобного. Вместо этого я был перенаправлен на обычную загрузку PostgreSQL на веб-сайте EnterpriseDB, что удивительно сложно найти. Вот оно . 64-разрядная версия не поставлялась с PostGIS, поэтому мне пришлось использовать 32-разрядную версию, которая работала. Наконец-то! * * 1006

1 голос
/ 15 апреля 2015

У меня возникла та же проблема, я решил ее, удалив postgres, postgis и переустановил, а затем установил официальную документацию по установке.Для Windows:

http://postgis.net/windows_downloads

Для Ubuntu и OSX:

http://postgis.net/install

...