Чому інсталяція PostGIS не створює template_postgis?


36

Я пройшов цей шлях для установки PostgreSQL та PostGIS:

Тепер, коли я запускаю pgAdmin і намагаюся створити нову базу даних PostGIS, у шаблоні немає шаблону_постгіс для використання.


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

Відповіді:


32

Ви можете легко створити шаблон, якщо його немає автоматично. Ось опис ubuntu: http://obsessivecoder.com/2010/02/01/installing-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: не знайдено
Michael Markieta

Оновлення - Каталог postgis в / usr / share / path немає
Michael Markieta

Тоді я думаю, що це сховано десь ще на OSX. Ви намагалися шукати файли?
underdark

Знайдено файли, всі рядки коду виконуються без помилок. Але pgAdmin3 ще не показує шаблон ... Hrmm .. Перезавантажив свій Mac, щоб побачити, чи це щось змінить, але все-таки нада. (дивно ... У мене це було на моєму Mac до переходу на Лев)
Майкл Маркієта

Кого ви використовували для створення шаблону, а якого ви використовуєте в pgAdmin?
underdark

29

З версії 2 Postgis увімкнено за допомогою системи розширення. Щоб просторово ввімкнути базу даних, увійдіть у свою базу даних, а потім:

 CREATE EXTENSION postgis;
 CREATE EXTENSION postgis_topology;

джерело: http://postgis.net/docs/postgis_installation.html

Примітка. Лише SUPERUSERSролі мають можливість створюватиEXTENSIONS


від pgAdmin4: Бази даних >> {select db} >> Розширення >> -r клацніть >> Створити >> Вибрати зі списку
matt wilkie

6

У мене виникли подібні проблеми, і я закінчив встановити пакет, знайдений у

entreprisedb.com

ви можете встановити postgis під час фази інсталяції або пізніше викликати "Builder стека додатків". Якщо установка не працює, виберіть іншу папку, щоб завантажити інсталятор postgis (який буде називатися на зразок edb_postgis_1_5_pg91.app.zip). Розпакуйте блискавку та встановіть. Якщо це не працює, ви можете перезавантажити і спробувати ще раз. У pgAdmin III повинен з'явитися template_postgis.


3

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

Установка PostGIS за замовчуванням із "stack builder" не вдасться. Але після першого кроку встановлення можна вибрати папку для завантаження для PostGIS. Просто завантажте його на робочий стіл і розпакуйте вручну. Подвійним клацанням файлу він буде встановлений належним чином. Тепер шаблон postgis_template доступний у pgAdmin.


1

Відповідно до документації PostGIS, лише

Деякі упаковані дистрибутиви PostGIS ... завантажують функції PostGIS у базу даних шаблонів, що називається template_postgis.

Отже, не кожен дистрибутив приходить template_postgis.

Як сказано в існуючих відповідях, в PostGIS 2.x легко створити або налаштувати шаблон самостійно, створивши звичайну базу даних, названу template_postgis як суперпользователь, а потім створивши необхідні та необов'язкові розширення (наприклад, 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.