Dlaczego instalacja PostGIS nie tworzy szablonu_postgis?

36

Poszedłem tą drogą do instalacji PostgreSQL i PostGIS:

Teraz, gdy uruchamiam pgAdmin i próbuję utworzyć nową bazę danych PostGIS, w szablonie nie ma szablonu_postgis.


Próbowałem pójść inną drogą, czyli pobrać pakiet PostgreSQL bezpośrednio z PostgreSQL. Spowoduje to zainstalowanie serwera i pozwoli ci użyć StackBuilder do pobrania i zainstalowania PostGIS. To nie rozwiązuje mojego problemu.

Michał Markieta
źródło

Odpowiedzi:

32

Możesz dość łatwo utworzyć szablon, jeśli nie jest tam automatycznie. Oto opis Ubuntu: http://obsessivecoder.com/2010/02/01/installing-postgresql-8-4-postgis-1-4-1-and-pgrouting-1-0-3-on-ubuntu -9-10-karmic-koala /

To jest zasadnicza część:

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

W precyzyjnej łuskowce:

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
podmrok
źródło
Dziwne ... w kroku „createlang plpgsql postgistemplate” Dostaję $ „plpgsql” jest już zainstalowany w bazie danych „postgistemplate” ... a następnie w następnym kroku psql: polecenie nie znaleziono
Michael Markieta
Aktualizacja - w katalogu / usr / share / path nie ma katalogu postgis
Michael Markieta
To chyba ukryte gdzieś indziej w OSX. Czy próbowałeś wyszukać pliki?
podmroku
Znaleziono pliki, wszystkie wiersze kodu działają bez błędów. Ale pgAdmin3 nadal nie wyświetla szablonu ... Hmm ... Uruchomiłem ponownie komputer Mac, aby zobaczyć, czy to coś zmieni, ale nadal nada. (dziwne ... Miałem to działające na komputerze Mac przed przejściem na Lion)
Michael Markieta
Którego użytkownika użyłeś do stworzenia szablonu, a którego używasz w pgAdmin?
podmroku
29

Od wersji 2 Postgis jest włączony przy użyciu systemu rozszerzeń. Aby przestrzennie włączyć bazę danych, zaloguj się do bazy danych, a następnie:

 CREATE EXTENSION postgis;
 CREATE EXTENSION postgis_topology;

źródło: http://postgis.net/docs/postgis_installation.html

Uwaga: tylko SUPERUSERSrole mogą tworzyćEXTENSIONS

nickves
źródło
z pgAdmin4: Bazy danych >> {wybierz db} >> Rozszerzenia >> -r-kliknij >> Utwórz >> Wybierz z listy
matt wilkie
6

Miałem podobne problemy i zakończyłem instalowanie pakietu znalezionego na:

entrelictb.com

możesz wybrać instalację postgis podczas fazy instalacji lub później wywołać „Application Stack Builder”. Jeśli instalacja nie działa, wybierz inny folder, aby pobrać instalator Postgis (który będzie się nazywał jak edb_postgis_1_5_pg91.app.zip). Rozpakuj zip i zainstaluj. Jeśli to nie pomoże, możesz zrestartować komputer i spróbować ponownie. W pgAdmin III powinny pojawić się szablon_postgis.

Vladtn
źródło
3

Pytanie może być nieaktualne, ale napotkałem ten sam błąd w systemie OS X Lion. Może moja odpowiedź może pomóc innemu użytkownikowi.

Domyślna instalacja PostGIS z „konstruktorem stosów” zakończy się niepowodzeniem. Ale po pierwszym kroku instalacji możesz wybrać folder pobierania PostGIS. Po prostu pobierz go na pulpit i rozpakuj ręcznie. Dwukrotne kliknięcie pliku spowoduje jego prawidłową instalację. Postgis_template jest teraz dostępny w pgAdmin.

Troll
źródło
1

Tylko zgodnie z dokumentacją PostGIS

Niektóre paczkowane dystrybucje PostGIS ... ładują funkcje PostGIS do bazy danych szablonów o nazwie template_postgis.

Tak więc nie każda dystrybucja pochodzi template_postgis.

Jak powiedziano w istniejących odpowiedziach, w PostGIS 2.x łatwo jest samodzielnie utworzyć lub dostosować szablon, tworząc zwykłą bazę danych o nazwie template_postgis superużytkownik, a następnie tworząc wymagane i opcjonalne rozszerzenia (takie jak pgRouting). Dokumentacja według 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;"

Ponadto można oznaczyć tę nowo utworzoną bazę danych jako bazę danych szablonów, ustawiając datistemplateflagę w tabeli systemowej pg_databasena ture.

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

Zapobiegnie to np. Przypadkowemu upuszczeniu lub zmianie bazy danych szablonów przez innych użytkowników lub przez ciebie. (Będziesz musiał ustawić flagę na false, jeśli chcesz wprowadzić zmiany w szablonie.)

Następnie możesz utworzyć przestrzenną bazę danych na podstawie tego, co umieścisz w szablonie:

createdb -T template_postgis my_spatial_db
do
źródło