Neue Methode mit PostgreSQL 9.1
Dank der Ratschläge von RK unten habe ich mir dieses Tutorial angesehen und festgestellt, dass Sie für PostgreSQL 9.1 nur die Erweiterungen postgis
und postgis_topology
eine vorhandene Datenbank mithilfe der Kontextmenüs von pgAdmin hinzufügen müssen. Um eine Postgis-Vorlage zu erstellen, habe ich eine neue Datenbank mit dem Namen erstellt template-postgis
und diese Erweiterungen hinzugefügt. Ich habe dann meine andere Datenbank mit dieser Vorlage erstellt. Bei der Verwendung stellte pg_dump
ich fest, dass der Export viel kleiner war, da er nur diese Zeilen zu enthalten scheint und die Erweiterungsfunktionen nicht auswertet:
CREATE EXTENSION IF NOT EXISTS postgis WITH SCHEMA public;
CREATE EXTENSION IF NOT EXISTS postgis_topology WITH SCHEMA topology;
Alte redundante Methode:
Am Ende habe ich die .sql-Dateien hier verwendet:
/Applications/Postgres.app/Contents/MacOS/share/contrib/postgis-2.0/postgis.sql
/Applications/Postgres.app/Contents/MacOS/share/contrib/postgis-2.0/spatial_ref_sys.sql
/Applications/Postgres.app/Contents/MacOS/share/contrib/postgis-2.0/topology.sql
Außerdem trat dieser Fehler auf, als ich eine vorhandene PostGIS-Datenbank in eine neue Datenbank aus dieser Vorlage importierte:
ERROR: type "spheroid" already exists
Also habe ich die Anweisungen hier befolgt und ON_ERROR_ROLLBACK=on
die Vorlage eingerichtet, nachdem ich eine leere Datenbank mit dem Namen "template_postgis" erstellt hatte:
psql -U postgres -d template_postgis -1 -f /Applications/Postgres.app/Contents/MacOS/share/contrib/postgis-2.0/postgis.sql -v ON_ERROR_ROLLBACK=on
psql -U postgres -d template_postgis -1 -f /Applications/Postgres.app/Contents/MacOS/share/contrib/postgis-2.0/spatial_ref_sys.sql -v ON_ERROR_ROLLBACK=on
psql -U postgres -d template_postgis -1 -f /Applications/Postgres.app/Contents/MacOS/share/contrib/postgis-2.0/topology.sql -v ON_ERROR_ROLLBACK=on
Und dann meine Backup-Datenbank importiert, zB:
psql -U someuser -d somedb -1 -f somefile.sql -v ON_ERROR_ROLLBACK=on
Noch ältere Methode:
Ich tat dies:
createdb -E UTF8 -T template0 template_postgis
createlang -d template_postgis plpgsql
psql --quiet -d template_postgis -f /Applications/Postgres.app/Contents/MacOS/share/extension/postgis--2.0.1.sql
Der Pfad postgis--2.0.1.sql
ist je nach Konfiguration unterschiedlich.