Phương pháp mới với PostgreSQL 9.1
Nhờ lời khuyên của RK bên dưới, tôi đã xem hướng dẫn này và thấy rằng đối với PostgreQuery 9.1, tất cả những gì bạn cần làm là thêm các tiện ích mở rộng postgis
và postgis_topology
vào cơ sở dữ liệu hiện có bằng menu ngữ cảnh pgAdmin. Để tạo một mẫu postgis, tôi đã tạo một cơ sở dữ liệu mới được gọi template-postgis
và sau đó thêm các phần mở rộng này. Sau đó tôi đã tạo cơ sở dữ liệu khác của mình bằng cách sử dụng mẫu này. Khi sử dụng pg_dump
tôi thấy kích thước của xuất nhỏ hơn nhiều, vì dường như chỉ bao gồm các dòng này và không kết xuất các hàm mở rộng:
CREATE EXTENSION IF NOT EXISTS postgis WITH SCHEMA public;
CREATE EXTENSION IF NOT EXISTS postgis_topology WITH SCHEMA topology;
Phương pháp dự phòng cũ:
Tôi đã kết thúc bằng cách sử dụng các tập tin .sql ở đây:
/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
Ngoài ra, tôi đã gặp lỗi này khi tôi nhập cơ sở dữ liệu PostGIS hiện có vào cơ sở dữ liệu mới được tạo từ mẫu này:
ERROR: type "spheroid" already exists
Vì vậy, tôi đã làm theo các hướng dẫn ở đây và sử dụng ON_ERROR_ROLLBACK=on
để thiết lập mẫu, sau khi tạo một cơ sở dữ liệu trống có tên là "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
Và sau đó nhập db sao lưu của tôi, ví dụ:
psql -U someuser -d somedb -1 -f somefile.sql -v ON_ERROR_ROLLBACK=on
Ngay cả phương pháp cũ hơn:
Tôi đã làm điều này:
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
Đường dẫn đến postgis--2.0.1.sql
sẽ khác nhau tùy thuộc vào thiết lập của bạn.