Установка Postgis

У меня есть версия Postgres 8.4.8

select version();
PostgreSQL 8.4.8 on i686-pc-linux-gnu, compiled by GCC gcc-4.4.real (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5, 32-bit

Установленный Postgis через диспетчер синаптических пакетов (postgis и postgresql-8.4-postgis) все казалось прекрасным. Затем, когда я пытаюсь проверить версию Postgis, все не так. Оба они дают ту же ошибку.

SELECT PostGIS_version();
SELECT PostGIS_full_version();

ERROR:  function postgis_full_version() does not exist
LINE 1: SELECT PostGIS_full_version();
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

Менеджер пакетов утверждает, что установлен Postgis. Как я могу проверить, что установка работала или не работала?

Ответ 1

PostGIS необходимо установить для каждой базы данных. Существующие базы данных не изменяются автоматически. Запустите установку script следующим образом.

В PostgreSQL 8.4 вам также может понадобиться создать язык plpgsql. Для 9.0+ это процедурный язык по умолчанию и устанавливается автоматически. В вашей базе данных:

createlang plpgsql yourdatabase

Невозможно причинить вред. Если plpgsql уже установлен, он просто выдает сообщение об ошибке. Перейдите в каталог установки. В Debian Squeeze пакеты contrib лежат здесь (могут быть разными в Ubuntu). В оболочке:

cd /usr/share/postgresql/8.4/contrib/postgis-1.5

Затем выполните (как пользователь postgres или вы должны указать имя пользователя /pw ):

psql -d yourdatabase -f postgis.sql
psql -d yourdatabase -f spatial_ref_sys.sql

Вы также можете установить комментарии к своим блестящим новым функциям (необязательно). В Debian Squeeze установочный файл находится в главном каталоге /contrib:

cd /usr/share/postgresql/8.4/contrib
psql -d yourdatabase -f postgis_comments.sql

Если вы хотите, чтобы PostGIS устанавливался с каждой новой базой данных в кластере по умолчанию, установите его также в свою базу данных template1. Подробнее читайте в в руководстве.

Источники для установки PostGIS (на Ubuntu):

http://postgis.net/docs/manual-2.1/postgis_installation.html
http://www.paolocorti.net/2008/01/30/installing-postgis-on-ubuntu/

PostgreSQL 9.1 +

С PostgreSQL 9.1 или новее вы можете использовать более удобный CREATE EXTENSION:

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;

Ваш дистрибутив, вероятно, отправит расширение, готовое для установки. Если нет, рассмотрите главу "Создание расширений PostGIS и их развертывание" в руководстве PostGIS.