Nuovo metodo con PostgreSQL 9.1
Grazie ai consigli di RK di seguito, ho dato un'occhiata a questo tutorial e ho scoperto che per PostgreSQL 9.1 tutto ciò che devi fare è aggiungere le estensioni postgis
e postgis_topology
un database esistente usando i menu contestuali di pgAdmin. Per creare un modello Postgis, ho creato un nuovo database chiamato template-postgis
e quindi ho aggiunto queste estensioni. Ho quindi creato il mio altro database utilizzando questo modello. Durante l'utilizzo pg_dump
ho scoperto che la dimensione dell'esportazione era molto più piccola, in quanto sembra includere solo queste righe e non scaricare le funzioni di estensione:
CREATE EXTENSION IF NOT EXISTS postgis WITH SCHEMA public;
CREATE EXTENSION IF NOT EXISTS postgis_topology WITH SCHEMA topology;
Vecchio metodo ridondante:
Ho finito per usare i file .sql qui:
/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
Inoltre, ho riscontrato questo errore quando ho importato un database PostGIS esistente in un nuovo database creato da questo modello:
ERROR: type "spheroid" already exists
Quindi ho seguito le istruzioni qui e usato ON_ERROR_ROLLBACK=on
per impostare il modello, dopo aver creato un database vuoto chiamato "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 poi ho importato il mio db di backup, ad esempio:
psql -U someuser -d somedb -1 -f somefile.sql -v ON_ERROR_ROLLBACK=on
Metodo ancora più vecchio:
L'ho fatto:
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
Il percorso per postgis--2.0.1.sql
sarà diverso a seconda della configurazione.