Metode Baru Dengan PostgreSQL 9.1
Berkat saran RK di bawah ini, saya melihat tutorial ini dan menemukan bahwa untuk PostgreSQL 9.1 yang perlu Anda lakukan adalah menambahkan ekstensi postgisdan postgis_topologyke database yang ada menggunakan menu konteks pgAdmin. Untuk membuat template postgis, saya membuat database baru yang disebut template-postgisdan kemudian menambahkan ekstensi ini. Saya kemudian membuat database saya yang lain menggunakan templat ini. Saat menggunakan pg_dumpsaya menemukan ukuran ekspor jauh lebih kecil, karena tampaknya hanya menyertakan garis-garis ini dan tidak membuang fungsi ekstensi:
CREATE EXTENSION IF NOT EXISTS postgis WITH SCHEMA public;
CREATE EXTENSION IF NOT EXISTS postgis_topology WITH SCHEMA topology;
Metode Redundan Lama:
Saya akhirnya menggunakan file .sql di sini:
/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
Juga, saya mendapatkan kesalahan ini ketika saya mengimpor database PostGIS yang ada ke database baru yang dibuat dari template ini:
ERROR: type "spheroid" already exists
Jadi saya mengikuti instruksi di sini dan digunakan ON_ERROR_ROLLBACK=onuntuk mengatur template, setelah membuat database kosong yang disebut "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
Dan kemudian mengimpor db cadangan saya, misalnya:
psql -U someuser -d somedb -1 -f somefile.sql -v ON_ERROR_ROLLBACK=on
Metode yang lebih tua:
Saya melakukan ini:
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
Path ke postgis--2.0.1.sqlakan berbeda tergantung pada pengaturan Anda.