Warum erstellt die PostGIS-Installation kein template_postgis?

36

Ich bin diesen Weg gegangen, um PostgreSQL und PostGIS zu installieren:

  • PostgreSQL mit dem eigenständigen KyngChaos ,
  • PostGIS-Installation auch von KyngChaos aus ...
  • pgAdmin3 von PostgreSQL Tools

Wenn ich jetzt pgAdmin starte und versuche, eine neue PostGIS-Datenbank zu erstellen, gibt es keine template_postgis zur Verwendung in Template.


Ich habe versucht, einen anderen Weg zu gehen, nämlich das PostgreSQL-Paket direkt von PostgreSQL herunterzuladen. Dadurch wird der Server installiert und Sie können mit dem StackBuilder PostGIS herunterladen und installieren. Das behebt mein Problem nicht.

Michael Markieta
quelle

Antworten:

32

Sie können die Vorlage ganz einfach erstellen, wenn sie nicht automatisch vorhanden ist. Hier ist eine Beschreibung für 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 /

Dies ist der wesentliche Teil:

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

In präzisen Pangolin:

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
Underdunkel
quelle
Seltsam .. bei Schritt 'createlang plpgsql postgistemplate' bekomme ich ein $ "plpgsql" bereits in der Datenbank "postgistemplate" installiert ... und dann beim nächsten Schritt psql: Befehl nicht gefunden
Michael Markieta
Update - Es gibt kein Postgis-Verzeichnis im Verzeichnis / usr / share / path
Michael Markieta
Dann ist es wohl irgendwo anders unter OSX versteckt. Haben Sie versucht, nach den Dateien zu suchen?
underdark
Habe die Dateien gefunden, alle Codezeilen laufen fehlerfrei. Aber pgAdmin3 zeigt die Vorlage immer noch nicht an ... Hrmm .. Startete meinen Mac neu, um zu sehen, ob sich daran etwas ändern würde, aber immer noch nada. (seltsam ... ich hatte dies auf meinem Mac vor dem Wechsel zu Lion)
Michael Markieta
Mit welchem ​​Benutzer haben Sie die Vorlage erstellt und mit welchem ​​Benutzer arbeiten Sie in pgAdmin?
underdark
29

Ab Version 2 wird Postgis über das Erweiterungssystem aktiviert. Um eine Datenbank räumlich zu aktivieren, melden Sie sich bei Ihrer Datenbank an und gehen Sie dann wie folgt vor:

 CREATE EXTENSION postgis;
 CREATE EXTENSION postgis_topology;

Quelle: http://postgis.net/docs/postgis_installation.html

Hinweis: Nur SUPERUSERSRollen können erstellt werdenEXTENSIONS

nickves
quelle
from pgAdmin4: Databases >> {select db} >> Extensions >> -r-click >> Create >> Select from list
Matt Wilkie
6

Ich hatte ähnliche Probleme und installierte das Paket unter:

entreprisedb.com

Sie können die Installation von Postgis während der Installationsphase auswählen oder später 'Application Stack Builder' aufrufen. Wenn die Installation nicht funktioniert, wählen Sie einen anderen Ordner aus, um das Postgis-Installationsprogramm herunterzuladen (das so etwas wie edb_postgis_1_5_pg91.app.zip heißt). Packen Sie den Reißverschluss aus und installieren Sie ihn. Wenn es nicht funktioniert, können Sie einen Neustart durchführen und es erneut versuchen. In pgAdmin III sollte template_postgis erscheinen.

Vladtn
quelle
3

Die Frage ist möglicherweise veraltet, aber unter OS X Lion ist derselbe Fehler aufgetreten. Vielleicht könnte meine Antwort einem anderen Benutzer helfen.

Die Standardinstallation von PostGIS mit "Stack Builder" schlägt fehl. Nach dem ersten Installationsschritt können Sie jedoch den Download-Ordner für PostGIS auswählen. Laden Sie es einfach auf Ihren Desktop herunter und entpacken Sie es von Hand. Wenn Sie auf die Datei doppelklicken, wird sie ordnungsgemäß installiert. Das postgis_template ist jetzt im pgAdmin verfügbar.

Troll
quelle
1

Nur laut PostGIS-Dokumentation

Einige Paketdistributionen von PostGIS ... laden die PostGIS-Funktionen in eine Vorlagendatenbank namens template_postgis.

So kommt nicht jede Distribution mit template_postgis.

Wie in bestehenden Antworten gesagt, in PostGIS 2.x, ist es einfach , die Vorlage selbst durch eine reguläre Datenbank erstellen Namen erstellen oder anpassen template_postgis als Super - User, und dann die Erstellung der erforderlichen und optionale Erweiterungen (wie pgRouting). Per PostGIS Dokumentation:

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;"

Darüber hinaus können Sie diese neu erstellte Datenbank als Vorlagendatenbank markieren, indem Sie das datistemplateFlag in der Systemtabelle pg_databaseauf setzen ture.

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

Dies verhindert beispielsweise, dass die Vorlagendatenbank versehentlich von anderen Benutzern oder von Ihnen selbst gelöscht oder geändert wird. (Sie müssen das Flag auf false setzen, wenn Sie Änderungen an der Vorlage vornehmen möchten.)

Dann können Sie eine räumliche Datenbank basierend auf dem erstellen, was Sie in die Vorlage einfügen:

createdb -T template_postgis my_spatial_db
bis
quelle