PostGIS में एक नया 'gis' डेटाबेस कैसे बनाएं?


24

मैं PostGIS में एक नया डेटाबेस बनाना चाहता हूं, इसलिए वर्तमान डेटाबेस का उपयोग करते समय मैं इसमें सामान लोड कर सकता हूं। डॉक्स के अनुसार

PostGIS के कुछ पैकेज्ड डिस्ट्रीब्यूशन (विशेष रूप से Post32 के लिए Win32 इंस्टालर> = 1.1.5) में PostGIS फंक्शन को टेम्पलेट डेटाबेस में लोड किया जाता है जिसे template_postgis कहा जाता है। यदि Template_postgis डेटाबेस आपके PostgreSQL इंस्टॉलेशन में मौजूद है, तो उपयोगकर्ताओं और / या अनुप्रयोगों के लिए एक ही कमांड का उपयोग करके स्थानिक रूप से सक्षम डेटाबेस बनाना संभव है।

मेरे मामले में ऐसा प्रतीत नहीं होता है:

$ createdb -T template_postgis my_spatial_db
createdb: database creation failed: ERROR:  template database "template_postgis" does not exist

अतीत में मैंने प्राथमिक gisडेटाबेस की नकल के साथ गड़बड़ की है , फिर सभी तालिकाओं की सामग्री को हटा दिया है। इसके लिए अवश्य ही एक बेहतर तरीका होना चाहिए। ' यदि आप गलती से इसे छोड़ देते हैं तो आप क्या करते हैं?


जवाबों:


42

मुझे नहीं पता कि आप किस संस्करण का PostGISउपयोग कर रहे हैं, लेकिन> 2.0मैं पहली बार लॉगिन का उपयोग कर रहा हूं psql:

psql -U postgres

फिर मैं एक डेटाबेस बनाता हूं:

CREATE DATABASE example_gis;

फिर मैं इस डेटाबेस में जाता हूं:

\connect example_gis;

और फिर मैं सराहना करता हूं:

CREATE EXTENSION postgis;

यह इस डेटाबेस में सभी स्थानिक फ़ंक्शन और ऑब्जेक्ट प्रकार बनाता है।  


अपने सिस्टम पर, मुझे CREATE EXTENSION POSTGISइसके बजाय सभी ऊपरी मामले लिखने की ज़रूरत है CREATE EXTENSION postgis
SIlamlam

5

@ Novicegis के लिंक के बाद, इसने मेरे लिए 1.5 पोस्टगिस के साथ काम किया:

db=gis
sudo -su postgres <<EOF
createdb --encoding=UTF8 --owner=ubuntu $db
psql -d $db -f /usr/share/postgresql/9.1/contrib/postgis-1.5/postgis.sql
psql -d $db -f /usr/share/postgresql/9.1/contrib/postgis-1.5/spatial_ref_sys.sql
psql -d $db -f /usr/share/postgresql/9.1/contrib/postgis_comments.sql
psql -d $db -c "GRANT SELECT ON spatial_ref_sys TO PUBLIC;"
psql -d $db -c "GRANT ALL ON geometry_columns TO ubuntu;"
psql -d $db -c 'create extension hstore;'
EOF

(लिंक किए गए निर्देशों में 'hstore' एक्सटेंशन शामिल नहीं है।)


2

आपको कंसोल में "template_postgis" बनाना चाहिए। सभी त्रुटियाँ कंसोल में प्रदर्शित होती हैं।

आप इस निर्देश का उपयोग कर सकते हैं: http://linfiniti.com/2012/05/installing-postgis-2-0-on-ubuntu/ यदि आप "template_postgis" बनाना चाहते हैं।

उदाहरण के लिए, मैं:

//install postgis
su oleg
sudo apt-add-repository ppa:sharpie/for-science  
sudo apt-add-repository ppa:sharpie/postgis-nightly
sudo apt-get update
sudo apt-get install postgresql-9.1-postgis

// create template
sudo su
su postgres
createdb -E UTF8 template_postgis2
createlang -d template_postgis2 plpgsql
psql -d postgres -c "UPDATE pg_database SET datistemplate='true' WHERE datname='template_postgis2'"

psql -d template_postgis2 -f /usr/share/postgresql/9.1/contrib/postgis-2.1/postgis.sql
psql -d template_postgis2 -f /usr/share/postgresql/9.1/contrib/postgis-2.1/rtpostgis.sql
psql -d template_postgis2 -c "GRANT ALL ON geometry_columns TO PUBLIC;"
psql -d template_postgis2 -c "GRANT ALL ON geography_columns TO PUBLIC;"
psql -d template_postgis2 -c "GRANT ALL ON spatial_ref_sys TO PUBLIC;"
createdb osm -T template_postgis2

मुझे यह संदेश मिला जब मैंने त्रुटियों के साथ पोस्टगिस स्थापित किया था


सभी ने पोस्टगिस 1.5 के साथ काम किया, सिवाय इसके कि कोई "rtpostgis.sql" फाइल नहीं है। क्या यह महत्वपूर्ण है?
स्टीव बेनेट ने

मुझे लगता है, पोस्टगिस 1.5 सबसे अच्छा तरीका है। लिंक - आधिकारिक दस्तावेज
नौसिखिएस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.