Почему установка PostGIS не создает template_postgis?

36

Я пошел по этому пути для установки PostgreSQL и PostGIS:

  • PostgreSQL с использованием автономного KyngChaos ,
  • PostGIS также устанавливается из KyngChaos ...
  • pgAdmin3 от PostgreSQL Tools

Теперь, когда я запускаю pgAdmin и пытаюсь создать новую базу данных PostGIS, нет никакого template_postgis для использования в Template.


Я попытался пойти другим путем, то есть загрузить пакет PostgreSQL непосредственно из PostgreSQL. Это устанавливает сервер и позволяет использовать StackBuilder для загрузки и установки PostGIS. Это не решает мою проблему.

Майкл Маркиета
источник

Ответы:

32

Вы можете довольно легко создать шаблон, если его там нет автоматически. Вот описание для Ubuntu: http://obsessivecoder.com/2010/02/01/install-postgresql-8-4-postgis-1-4-1-and-pgrouting-1-0-3-on-ubuntu -9-10-кармический-коала /

Это важная часть:

sudo su postgres
createdb template_postgis
createlang plpgsql template_postgis
psql -d template_postgis -f /usr/share/postgresql/8.4/contrib/postgis.sql
psql -d template_postgis -f /usr/share/postgresql/8.4/contrib/spatial_ref_sys.sql

Точный панголин:

sudo su postgres
createdb template_postgis
psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql
psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql
Подземье
источник
Странно .. на шаге 'createlang plpgsql postgistemplate' я получаю $ "plpgsql" уже установлен в базе данных "postgistemplate" ... и затем на следующем шаге команда psql: не найдена
Майкл Маркиета
Обновление - в каталоге / usr / share / path нет каталога postgis
Майкл Маркиета
Тогда я думаю, что это скрыто где-то еще на OSX. Вы пытались искать файлы?
Подземье
Найдены файлы, все строки кода запускаются без ошибок. Но pgAdmin3 не показывает шаблон по-прежнему ... Хммм ... Перезагрузил мой Mac, чтобы посмотреть, изменит ли это что-нибудь, но все равно нада. (странно ... у меня это работало на моем Mac до перехода на Lion)
Майкл Маркиета
Какой пользователь вы использовали для создания шаблона, и какой пользователь вы используете в pgAdmin?
Подземье
29

Начиная с версии 2 Postgis включается с помощью системы расширений. Чтобы пространственно включить базу данных, войдите в свою базу данных и затем:

 CREATE EXTENSION postgis;
 CREATE EXTENSION postgis_topology;

источник: http://postgis.net/docs/postgis_installation.html

Примечание. Только SUPERUSERSроли могут создаватьEXTENSIONS

nickves
источник
from pgAdmin4: Базы данных >> {select db} >> Расширения >> -r-click >> Создать >> Выбрать из списка
matt wilkie
6

У меня были похожие проблемы, и в итоге я установил пакет, найденный по адресу:

entreprisedb.com

Вы можете выбрать установку postgis на этапе установки или вызвать «Построитель стека приложений» позже. Если установка не работает, выберите другую папку для загрузки установщика postgis (который будет называться что-то вроде edb_postgis_1_5_pg91.app.zip). Распакуйте zip и установите. Если это не работает, вы можете перезагрузиться и попробовать еще раз. В pgAdmin III должен появиться template_postgis.

Vladtn
источник
3

Вопрос может быть устаревшим, но я столкнулся с той же ошибкой на OS X Lion. Может быть, мой ответ может помочь другому пользователю.

Установка PostGIS по умолчанию с помощью «компоновщика стека» завершится неудачно. Но после первого шага установки вы можете выбрать папку для загрузки PostGIS. Просто загрузите его на рабочий стол и разархивируйте вручную. При двойном щелчке файла он будет установлен правильно. Postgis_template теперь доступен в pgAdmin.

тролль
источник
1

Согласно документации PostGIS, только

Некоторые упакованные дистрибутивы PostGIS ... загружают функции PostGIS в базу данных шаблонов с именем template_postgis.

Таким образом, не каждый дистрибутив поставляется с template_postgis.

Как сказано в существующих ответах, в PostGIS 2.x легко создать или настроить шаблон самостоятельно, создав обычную базу данных с именем template_postgis superuser, а затем создав необходимые и дополнительные расширения (такие как pgRouting). По документации PostGIS:

sudo su postgres
createdb template_postgis

psql -d template_postgis -c "CREATE EXTENSION postgis;"
psql -d template_postgis -c "CREATE EXTENSION postgis_topology;"

-- if you built with sfcgal support --
psql -d template_postgis -c "CREATE EXTENSION postgis_sfcgal;"

Кроме того, вы можете пометить эту вновь созданную базу данных как базу данных шаблонов, установив datistemplateфлаг в системной таблице pg_databaseна ture.

psql -d template_postgis -c "UPDATE pg_database SET datistemplate = 'true' WHERE datname = 'template_postgis';"

Это, например, предотвратит случайное удаление или изменение базы данных шаблонов другими пользователями или вами. (Вам нужно будет установить флаг в false, если вы хотите внести изменения в шаблон.)

Затем вы можете создать пространственную базу данных на основе того, что вы положили в шаблон:

createdb -T template_postgis my_spatial_db
сезам
источник