Novo método com o PostgreSQL 9.1
Graças ao conselho de RK abaixo, dei uma olhada neste tutorial e descobri que para o PostgreSQL 9.1 tudo o que você precisa fazer é adicionar as extensões postgis
e postgis_topology
um banco de dados existente usando os menus de contexto pgAdmin. Para criar um modelo postgis, criei um novo banco de dados chamado template-postgis
e adicionei essas extensões. Criei meu outro banco de dados usando este modelo. Ao usar pg_dump
, descobri que o tamanho da exportação era muito menor, pois parece incluir apenas essas linhas e não despejar as funções de extensão:
CREATE EXTENSION IF NOT EXISTS postgis WITH SCHEMA public;
CREATE EXTENSION IF NOT EXISTS postgis_topology WITH SCHEMA topology;
Antigo método redundante:
Acabei usando os arquivos .sql aqui:
/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
Além disso, recebi esse erro ao importar um banco de dados PostGIS existente para um novo banco de dados criado a partir deste modelo:
ERROR: type "spheroid" already exists
Então, segui as instruções aqui e usei ON_ERROR_ROLLBACK=on
para configurar o modelo, depois de criar um banco de dados em branco chamado "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
E então importou meu banco de dados de backup, por exemplo:
psql -U someuser -d somedb -1 -f somefile.sql -v ON_ERROR_ROLLBACK=on
Método ainda mais antigo:
Eu fiz isso:
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
O caminho para postgis--2.0.1.sql
será diferente dependendo da sua configuração.