Nowa metoda w PostgreSQL 9.1
Dzięki radom RK poniżej rzuciłem okiem na ten samouczek i stwierdziłem, że dla PostgreSQL 9.1 wszystko, co musisz zrobić, to dodać rozszerzenia postgis
i postgis_topology
istniejącą bazę danych za pomocą menu kontekstowych pgAdmin. Aby utworzyć szablon Postgis, stworzyłem nową bazę danych o nazwie, template-postgis
a następnie dodałem te rozszerzenia. Następnie utworzyłem drugą bazę danych, korzystając z tego szablonu. Podczas używania pg_dump
zauważyłem, że rozmiar eksportu był znacznie mniejszy, ponieważ wydaje się, że zawiera on tylko te linie i nie zrzuca funkcji rozszerzenia:
CREATE EXTENSION IF NOT EXISTS postgis WITH SCHEMA public;
CREATE EXTENSION IF NOT EXISTS postgis_topology WITH SCHEMA topology;
Stara redundantna metoda:
Skończyło się na użyciu plików .sql tutaj:
/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
Ponadto wystąpił ten błąd, gdy zaimportowałem istniejącą bazę danych PostGIS do nowej bazy danych wykonanej z tego szablonu:
ERROR: type "spheroid" already exists
Po wykonaniu pustej bazy danych o nazwie „template_postgis” postępowałem zgodnie z instrukcjami tutaj i użyłem jej ON_ERROR_ROLLBACK=on
do ustawienia:
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
A następnie zaimportowałem moją kopię zapasową db, np .:
psql -U someuser -d somedb -1 -f somefile.sql -v ON_ERROR_ROLLBACK=on
Jeszcze starsza metoda:
Ja to zrobiłem:
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
Ścieżka do postgis--2.0.1.sql
będzie inna w zależności od konfiguracji.