ทำไมการติดตั้ง PostGIS ไม่สร้าง template_postgis


36

ฉันไปเส้นทางนี้เพื่อติดตั้ง PostgreSQL และ PostGIS:

ตอนนี้เมื่อฉันเรียกใช้ pgAdmin และพยายามสร้างฐานข้อมูล PostGIS ใหม่ไม่มี template_postgis สำหรับใช้ในแม่แบบ


ฉันได้ลองเส้นทางอื่นแล้วนั่นคือการดาวน์โหลดแพ็คเกจ PostgreSQL โดยตรงจาก PostgreSQL สิ่งนี้จะติดตั้งเซิร์ฟเวอร์และอนุญาตให้คุณใช้ StackBuilder เพื่อดาวน์โหลดและติดตั้ง PostGIS นี่ไม่ได้แก้ปัญหาของฉัน

คำตอบ:


32

คุณสามารถสร้างเทมเพลตได้ง่ายหากไม่ได้อยู่ที่นั่นโดยอัตโนมัติ นี่คือคำอธิบายสำหรับ ubuntu: http://obsessivecoder.com/2010/02/01/installing-postgresql-8-4-postgis-1-4-1-and-pgrouting-1-0-3-on-ubuntu -9-10-กรรม-หมีโคอาล่า /

นี่คือส่วนสำคัญ:

sudo su postgres
createdb template_postgis
createlang plpgsql template_postgis
psql -d template_postgis -f /usr/share/postgresql/8.4/contrib/postgis.sql
psql -d template_postgis -f /usr/share/postgresql/8.4/contrib/spatial_ref_sys.sql

ใน Pangolin ที่แม่นยำ:

sudo su postgres
createdb template_postgis
psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql
psql -d template_postgis -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql

แปลก .. ที่ขั้นตอน 'createlang plpgsql postgistemplate' ฉันได้รับ $ "plpgsql" ติดตั้งแล้วในฐานข้อมูล "postgistemplate" ... และจากนั้นในขั้นตอนต่อไป psql: ไม่พบคำสั่ง
Michael Markieta

อัปเดต - ไม่มีไดเรกทอรี postgis ใน / usr / share / path
Michael Markieta

ถ้าอย่างนั้นฉันคิดว่ามันซ่อนอยู่ที่อื่นใน OSX คุณลองค้นหาไฟล์แล้วหรือยัง?
underdark

พบไฟล์ทุกบรรทัดของรหัสทำงานโดยไม่มีข้อผิดพลาด แต่ pgAdmin3 ไม่แสดงแม่แบบยังคง ... Hrmm .. รีสตาร์ท Mac ของฉันเพื่อดูว่าจะเปลี่ยนอะไร แต่ยังคง nada (แปลก ... ฉันใช้ Mac ของฉันทำงานก่อนจะเปลี่ยนเป็น Lion)
Michael Markieta

คุณใช้ผู้ใช้คนใดในการสร้างเทมเพลตและคุณใช้ผู้ใช้คนใดใน pgAdmin
underdark

29

Postgis รุ่นที่ 2 เปิดใช้งานโดยใช้ระบบส่วนขยาย หากต้องการเปิดใช้งานฐานข้อมูลให้ลงชื่อเข้าใช้ฐานข้อมูลของคุณแล้ว:

 CREATE EXTENSION postgis;
 CREATE EXTENSION postgis_topology;

แหล่งที่มา: http://postgis.net/docs/postgis_installation.html

หมายเหตุ: เฉพาะSUPERUSERSบทบาทที่มีความสามารถในการสร้างEXTENSIONS


จาก pgAdmin4: ฐานข้อมูล >> {select db} >> ส่วนขยาย >> -r-click >> สร้าง >> เลือกจากรายการ
matt wilkie

6

ฉันมีปัญหาที่คล้ายกันและลงเอยด้วยการติดตั้งแพ็คเกจที่:

entreprisedb.com

คุณสามารถเลือกการติดตั้ง postgis ในระหว่างขั้นตอนการติดตั้งหรือโทร 'Application Stack Builder' ในภายหลัง หากการติดตั้งใช้งานไม่ได้ให้เลือกโฟลเดอร์อื่นเพื่อดาวน์โหลดตัวติดตั้ง postgis (ซึ่งจะมีชื่ออย่างเช่น edb_postgis_1_5_pg91.app.zip) คลายซิปและติดตั้ง หากไม่สามารถใช้งานได้คุณอาจต้องรีบูตและลองอีกครั้ง ใน pgAdmin III template_postgis ควรปรากฏขึ้น


3

คำถามอาจล้าสมัย แต่ฉันพบข้อผิดพลาดเดียวกันใน OS X Lion บางทีคำตอบของฉันอาจช่วยผู้ใช้รายอื่นได้

การติดตั้งเริ่มต้นของ PostGIS ด้วย "ตัวสร้างสแต็ค" จะล้มเหลว แต่หลังจากขั้นตอนการติดตั้งครั้งแรกคุณสามารถเลือกโฟลเดอร์ดาวน์โหลดสำหรับ PostGIS เพียงดาวน์โหลดไปยังเดสก์ท็อปของคุณและคลายซิปด้วยมือ โดยดับเบิลคลิกที่ไฟล์มันจะติดตั้งอย่างถูกต้อง postgis_template มีอยู่ใน pgAdmin


1

ตามเอกสารของ PostGIS เท่านั้น

การกระจายแพคเกจบางส่วนของ PostGIS ... โหลดฟังก์ชัน PostGIS ลงในฐานข้อมูลแม่แบบที่เรียกว่า template_postgis

template_postgisดังนั้นไม่กระจายทุกที่มาพร้อมกับ

ดังที่กล่าวไว้ในคำตอบที่มีอยู่แล้วใน PostGIS 2.x มันง่ายในการสร้างหรือปรับแต่งเทมเพลตด้วยตัวคุณเองโดยสร้างฐานข้อมูลปกติชื่อtemplate_postgis superuser แล้วสร้างส่วนขยายที่จำเป็นและเป็นตัวเลือก (เช่น pgRouting) ตามเอกสารของ 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;"

นอกจากนี้คุณสามารถทำเครื่องหมายนี้ฐานข้อมูลที่สร้างขึ้นใหม่เป็นฐานข้อมูลแม่แบบโดยการตั้งdatistemplateธงในตารางระบบเพื่อpg_databaseture

psql -d template_postgis -c "UPDATE pg_database SET datistemplate = 'true' WHERE datname = 'template_postgis';"

สิ่งนี้จะช่วยป้องกันฐานข้อมูลแม่แบบจากการถูกทิ้งหรือดัดแปลงโดยผู้ใช้รายอื่นหรือตัวคุณเองโดยไม่ตั้งใจ (คุณจะต้องตั้งค่าสถานะเป็นเท็จหากคุณต้องการเปลี่ยนแปลงเทมเพลต)

จากนั้นคุณสามารถสร้างฐานข้อมูลเชิงพื้นที่ตามสิ่งที่คุณใส่ลงในแม่แบบ:

createdb -T template_postgis my_spatial_db
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.