Theo tài liệu của PostGIS, chỉ
Một số bản phân phối đóng gói của PostGIS ... tải các hàm PostGIS vào cơ sở dữ liệu mẫu có tên là template_postgis.
Vì vậy, không phải mọi phân phối đi kèm template_postgis
.
Như đã nói trong các câu trả lời hiện có, trong PostGIS 2.x, bạn có thể dễ dàng tự tạo hoặc tùy chỉnh mẫu bằng cách tạo cơ sở dữ liệu thông thường có tên template_postgis
là superuser, sau đó tạo các tiện ích mở rộng bắt buộc và tùy chọn (như pgRouting). Theo tài liệu của PostGIS:
sudo su postgres
createdb template_postgis
psql -d template_postgis -c "CREATE EXTENSION postgis;"
psql -d template_postgis -c "CREATE EXTENSION postgis_topology;"
-- if you built with sfcgal support --
psql -d template_postgis -c "CREATE EXTENSION postgis_sfcgal;"
Ngoài ra, bạn có thể đánh dấu cơ sở dữ liệu mới được tạo này làm cơ sở dữ liệu mẫu bằng cách đặt datistemplate
cờ trong bảng hệ thống pg_database
thành ture
.
psql -d template_postgis -c "UPDATE pg_database SET datistemplate = 'true' WHERE datname = 'template_postgis';"
Điều này sẽ, ví dụ, ngăn cơ sở dữ liệu mẫu vô tình bị đánh rơi hoặc thay đổi bởi người dùng khác hoặc chính bạn. (Bạn sẽ cần đặt cờ thành false nếu bạn muốn thay đổi mẫu.)
Sau đó, bạn có thể tạo cơ sở dữ liệu không gian dựa trên bất cứ thứ gì bạn đưa vào mẫu:
createdb -T template_postgis my_spatial_db