Nuevo método con PostgreSQL 9.1
Gracias al consejo de RK a continuación, eché un vistazo a este tutorial y descubrí que para PostgreSQL 9.1 todo lo que necesita hacer es agregar las extensiones postgis
y postgis_topology
a una base de datos existente utilizando los menús contextuales de pgAdmin. Para crear una plantilla postgis, creé una nueva base de datos llamada template-postgis
y luego agregué estas extensiones. Luego creé mi otra base de datos usando esta plantilla. Al usar pg_dump
, descubrí que el tamaño de la exportación era mucho más pequeño, ya que parece incluir estas líneas y no volcar las funciones de extensión:
CREATE EXTENSION IF NOT EXISTS postgis WITH SCHEMA public;
CREATE EXTENSION IF NOT EXISTS postgis_topology WITH SCHEMA topology;
Viejo método redundante:
Terminé usando los archivos .sql aquí:
/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
Además, recibí este error cuando importé una base de datos PostGIS existente a una nueva base de datos hecha a partir de esta plantilla:
ERROR: type "spheroid" already exists
Así que seguí las instrucciones aquí y solía ON_ERROR_ROLLBACK=on
configurar la plantilla, después de crear una base de datos en blanco llamada "template_postgis":
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
Y luego importé mi db de respaldo, por ejemplo:
psql -U someuser -d somedb -1 -f somefile.sql -v ON_ERROR_ROLLBACK=on
Método aún más antiguo:
Hice esto:
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
La ruta a postgis--2.0.1.sql
será diferente dependiendo de su configuración.