Ответ 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.