PostgreSQL PostGIS template_postgis erstellen

Wenn räumliche Daten in einer Datenbank abgelegt werden sollen, ist oft PostgreSQL mit der PostGIS-Erweiterung die erste Wahl.
Um Datenbanken erstellen zu können, die in der Lage sind, Geo-Daten zu verarbeiten, muss man beim Erstellen der Datenbank ein Template angeben, welches die notwendigen Erweiterungen, Datentypen und Funktionen in die neue Datenbank kopiert. Dieses Template heißt normalerweise template_postgis und wird wird in der Regel automatisch erzeugt, wenn die PostGIS-Erweiterung installiert wird.
Bei Debian und Ubuntu – wie heute wieder festgestellt – leider nicht. Es gibt dort zwar ein spezielles Paket ( postgresql-X.Y-postgis ), aber die Installation dieses Pakets erzeugt nicht das gewünschte Template.

Also muss man das zu Fuß erledigen.

Die notwendigen Dateien finden
Glücklicherweise werden 2 SQL-Dateien mitgeliefert, die alles notwendige erledigen – postgis.sql und spatial_ref_sys.sql. Die muss man allerdings erstmal finden.
Also lassen wir sie suchen:

user@desktop:~$ find / -name postgis.sql

In Ubuntu sind sie zum Beispiel in dem Verzeichnis

/usr/share/postgresql/9.1/contrib/postgis-1.5/

versteckt.
Wenn man die gefunden hat, kann man loslegen.

Sollten die Dateien aus irgendeinem Grund nicht gefunden werden, hab ich sie hier zum Download zusammen gestellt. (ca. 220 Kb)
Download

Die Datenbank erstellen:

user@desktop:~$ sudo -u postgres createdb -E UTF8 template_postgis

Dann soll mit

user@desktop:~$ sudo -u postgres createlang -d template_postgis plpgsql

die PLPGSQL-Sprachunterstützung zu der Datenbank hinzugefügt werden. Bei mir kam allerdings der Hinweis, dass dies schon erledigt sei.

Die beiden SQL-Dateien abarbeiten lassen

user@desktop:~$ sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql

und

user@desktop:~$ sudo -u postgres psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql

Das war es dann auch schon. Im Anschluss kann mit dem Befehl

createdb -T template_postgis -O user DatenbankName

eine Datenbank erzeugt werden, die Geo-Daten verarbeiten kann. Mit dem Parameter -O wird der Nutzer user zum Besitzer dieser Datenbank gemacht und erhält alle notwendigen Rechte.

3 Gedanken zu “PostgreSQL PostGIS template_postgis erstellen

Schreibe einen Kommentar