পোস্টজিআইএস টেম্পলেট কীভাবে তৈরি করবেন?


19

আমি পিগ্রাউটিং ইনস্টল করার জন্য একটি টিউটোরিয়াল অনুসরণ করছি। যাইহোক, আমি যখন অংশটি বলি তখন পেলাম না

পিজিএডমিন শুরু করুন এবং আপনার পোস্টজিআইএস টেমপ্লেটের উপর ভিত্তি করে একটি নতুন ডাটাবেস তৈরি করুন

আমি এই পোস্টগিস টেম্পলেটটি কোথায় পাব? আমি জানি আমি হোমব্রু ব্যবহার করে পোস্টজিআইএস ইনস্টল করেছি। তবে আমি টেমপ্লেটটি খুঁজে পেলাম না। আমি এখন ম্যাকোস চালাচ্ছি।


1
আপনি PostGIS এর কোন সংস্করণ ব্যবহার করছেন?
আরকে

উত্তর:


16

PostgreSQL 9.1 সহ নতুন পদ্ধতি Meth

নীচে আরকে পরামর্শ দেওয়ার জন্য ধন্যবাদ, আমি এই টিউটোরিয়ালটি দেখে নিলাম যে পোস্টগ্রেএসকিউএল 9.1 এর জন্য আপনাকে প্যাগএডমিন প্রসঙ্গ মেনুগুলি ব্যবহার করে এক্সটেনশনগুলি postgisএবং postgis_topologyএকটি বিদ্যমান ডাটাবেস যুক্ত করতে হবে। পোস্টগিস টেম্পলেট তৈরি করতে, আমি একটি নতুন ডাটাবেস তৈরি করেছি template-postgisএবং তারপরে এই এক্সটেনশনগুলি যুক্ত করেছি। আমি তখন এই টেম্পলেটটি ব্যবহার করে আমার অন্যান্য ডাটাবেস তৈরি করেছি। ব্যবহার করার সময় pg_dumpআমি দেখতে পেলাম যে রফতানির আকারটি অনেক ছোট ছিল, কারণ মনে হচ্ছে কেবল এই লাইনগুলি অন্তর্ভুক্ত করা হবে এবং এক্সটেনশন ফাংশনগুলি ডাম্প করবেন না:

CREATE EXTENSION IF NOT EXISTS postgis WITH SCHEMA public;
CREATE EXTENSION IF NOT EXISTS postgis_topology WITH SCHEMA topology;

পুরানো অপ্রয়োজনীয় পদ্ধতি:

আমি এখানে .sQL ফাইলগুলি ব্যবহার করে শেষ করেছি:

/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

এছাড়াও, আমি যখন এই টেমপ্লেটটি থেকে তৈরি একটি নতুন ডাটাবেসে একটি বিদ্যমান পোস্টজিআইএস ডাটাবেস আমদানি করি তখন আমি এই ত্রুটিটি পেয়েছি:

ERROR:  type "spheroid" already exists

সুতরাং আমি এখানে নির্দেশাবলী অনুসরণ করেছি এবং ON_ERROR_ROLLBACK=on"টেম্পলেট_পোস্টগিস" নামে একটি ফাঁকা ডাটাবেস তৈরির পরে টেমপ্লেট সেট আপ করতে ব্যবহার করেছি:

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

এবং তারপরে আমার ব্যাকআপ ডিবি আমদানি করুন, যেমন:

psql -U someuser -d somedb -1 -f somefile.sql -v ON_ERROR_ROLLBACK=on

এমনকি পুরানো পদ্ধতি:

আমি এটা করেছি:

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

postgis--2.0.1.sqlআপনার সেটআপের উপর নির্ভর করে পাথটি আলাদা হবে।


আপনার উত্তরটি পূরণ করতে (যা আমার ম্যাকের সাথে কাজ করে): একটি ম্যাকের উপর, আপনি কিংচাওস বন্দর থেকে পোস্টগিস ইনস্টল করলে, পোস্টগিজ ইনস্টলেশন ফাইলটি হ'ল: /usr/local/pgsql/share/existance/postgis--2.0.1.sql
ব্রুনো ভন প্যারিস

নতুন পদ্ধতির জন্য, 'স্কেম' দরকার কি? এটা কীসের জন্য? (ইতিমধ্যে আমি আপনার একমাত্র উদাহরণ যা দেখেছি এটি।)
ম্যাট উইলকি ২ie

14

আপনি যদি PostgreSQL 9.1+ চালাচ্ছেন তবে আপনাকে টেমপ্লেট ডাটাবেস নিয়ে বিরক্ত করার দরকার নেই । PgAdmin- এ এসকিউএল ভিউতে কেবল একটি ডাটাবেস তৈরি করুন এবং টাইপ করুন এবং রান করুন

CREATE EXTENSION postgis;

এটি স্থানিকভাবে আপনার ডাটাবেস সক্ষম করবে।


টেমপ্লেট পদ্ধতিটি এখনও ব্যবহার করা যেতে পারে? বা, pgAdminIII- এ "নতুন ডাটাবেস" কথোপকথনে এই তথ্য যুক্ত করার উপায় আছে কি?
monkut

আপনি সম্ভবত যুক্ত করতে চানCREATE EXTENSION postgis_topology;
ম্যাট উইলকি

1
@ পেজএডমিন 4-এ ইমোনকুট এটি নেভিগেশন গাছের 'এক্সটেনশনগুলি' -তে ডান-ক্লিকের মাধ্যমে উপলব্ধ
ম্যাট উইলকি

CREATE EXTENSIONসুপারভাইজার সুবিধাগুলি প্রয়োজন, সুতরাং আসলে কোনও টেম্পলেট তৈরি করা / ব্যবহার করা খুব ভাল ধারণা হতে পারে।
ক্রোম্যাক্স

3

প্রকৃতপক্ষে এটি পোস্টগ্রিজ ইনস্টলেশনটির ভিত্তি।

আপনার যদি পোস্টগিজ টেম্পলেট থাকে তবে আপনি এটি থেকে একটি নতুন ডাটাবেস তৈরি করতে পারেন:

 createdb -T postgistemplate -O gis gisdb

আপনার যদি এটি না থাকে তবে আপনি এইভাবে এটি করতে পারেন:

sudo su postgres
createdb postgistemplate
createlang plpgsql postgistemplate
psql -d postgistemplate -f /usr/share/postgresql-8.2-postgis/lwpostgis.sql
psql -d postgistemplate -f /usr/share/postgresql-8.2-postgis/spatial_ref_sys.sql

আপনি বাশ স্ক্রিপ্টগুলি ডেবিয়ান / উবুন্টু - create_template_postgis-debian.sh ব্যবহার করতে পারেন, এখানে

আমি এটি আপনাকে সাহায্য করে আশা করি...


এটি সম্ভবত এমন ক্ষেত্রে ঘটেছে যে ব্যবহারকারীর postgresকাছে টার্মিনাল ব্যবহারের অনুমতি নেই, সেক্ষেত্রে sudo su postgresকমান্ডটি নিঃশব্দে ব্যর্থ হবে। এর আগে আপনি sudo -u postgresপোস্টগ্র্রেস ব্যবহারকারীর স্যুইচ না করে পোস্ট ক্রেস ব্যবহারকারী হিসাবে কমান্ডটি চালাতে এই সমস্ত কমান্ডের আগে চলে যেতে পারেন ।
রিং

2

যতদূর আমার মনে আছে template টেমপ্লেট ডাটাবেসগুলি তৈরি করতে ওয়ার্কশপের জন্য কিছু স্ক্রিপ্ট উপলব্ধ available এটি এখানেও উপলভ্য: https://github.com/pgRouting/pgrouting-contrib/blob/master/scriptts/create_templates.sh

অবশেষে আপনাকে এখানে এবং সেখানে কয়েকটি জিনিস পরিবর্তন করা দরকার কারণ এটি ডেবিয়ান / উবুন্টুর পক্ষে কাজ করার জন্য লেখা হয়েছিল। তবে আপনি যা প্রয়োজন তা চয়ন করতে পারেন।


2
#!/bin/sh
instance_name=$1
psql << EOF
create database $instance_name;
\connect $instance_name
-- Enable PostGIS (includes raster)
CREATE EXTENSION postgis;
-- Enable Topology
CREATE EXTENSION postgis_topology;
-- fuzzy matching needed for Tiger
CREATE EXTENSION fuzzystrmatch;
-- Enable US Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;
EOF

পোস্টগিস সক্ষম ও স্টিডিনে দেওয়া নাম সহ নতুন ডাটাবেস তৈরি করতে আমি এই বাশ স্ক্রিপ্টটি ব্যবহার করি।

পোস্টগ্রিজ 9.3

পোস্টজিআইএস ২.১.৩

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.