Ошибка PostGIS: тип "география" не существует

Я только что обновил свою машину разработки до 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),
                     ^

если я посмотрю под базой данных в Object brower pgAdmin III, я увижу кучу Geometry функции, поэтому установка, кажется, работает. Не знаю, в чем моя проблема. Возможно ли, чтобы установщик устанавливал только PostGIS Geometry, а не Geography?

4 ответов


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

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

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

обновление 9/25/2014:

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

$ psql

psql> \c databaseName;

psql> CREATE EXTENSION Postgis;

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

db_lbs= > \ DT geography

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

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

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


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


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

http://postgis.net/windows_downloads

для Ubuntu & OSX:

http://postgis.net/install