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 postgis
dan postgis_topology
ke database yang ada menggunakan menu konteks pgAdmin. Untuk membuat template postgis, saya membuat database baru yang disebut template-postgis
dan kemudian menambahkan ekstensi ini. Saya kemudian membuat database saya yang lain menggunakan templat ini. Saat menggunakan pg_dump
saya 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=on
untuk 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.sql
akan berbeda tergantung pada pengaturan Anda.