পোস্টগ্রিসএসকিউএলে "সর্বজনীন" ব্যতীত কাস্টম স্কিমে পোস্টজিআইএস স্থানিক ফাংশন যুক্ত করুন


15

সম্প্রতি, আমি পোস্টগ্রিজএসকিউএল 9.1 ডাটাবেস সার্ভারে পিজএডমিন ব্যবহার করে একটি পোস্টজিআইএস 2.0.3 ডাটাবেস তৈরি করেছি। "এক্সটেনশনস" এ "পোস্টজিআইএস" এক্সটেনশানটি ইনস্টল করা পাওয়া গেছে। "সর্বজনীন" স্কিমাতে সমস্ত স্থানিক ক্রিয়া যুক্ত করা হয়েছিল। সেটা ঠিক আছে.

এখন আমি আমার সমস্ত ডেটা "জিসি" নামে একটি নতুন স্কিমে সঞ্চয় করতে চাই। যাইহোক, আমি কীভাবে সমস্ত "জিসি" স্কিমে সমস্ত স্থানিক ক্রিয়াকলাপ ইনস্টল করব? স্কিমে কোনও একক ক্রিয়াকলাপ নেই। যাইহোক, যখন আমি ইএসআরআই আর্কগ্ল্যাটালগ 10.1 থেকে এই স্কিমাতে নতুন বৈশিষ্ট্য শ্রেণি / আমদানির চেষ্টা করেছি, এটি কাজ করেছিল! বৈশিষ্ট্য শ্রেণি QGIS এ আমদানি করা এবং প্রদর্শিত হতে পারে।

কেউ কি আমাকে এ সম্পর্কে কোনও পরামর্শ বা ধারণা দিতে পারেন?

আমি পোস্টগ্রিজ এসকিউএল এবং পোস্টজিআইএসে নতুন।


শুধু খেয়াল: ইতিমধ্যেই এ মোকাবেলা gis.stackexchange.com/questions/43187/...
মার্টিন এফ

@MartinF আছে হয় একটি (অসম্পূর্ণ) প্রশ্ন যা আপনার লিঙ্ক এ এই প্রশ্নের উত্তর কিন্তু যে প্রশ্ন সত্যিই খুব ভিন্ন কিছু চাইছে।
কেনি এভিট

এই প্রশ্নটির শিরোনাম "পাবলিক ব্যতীত স্কিমাতে পোস্টজিআইএস ইনস্টল করা?" শিরোনামও হতে পারে।
কেনি এভিট

উত্তর:


3

পোস্টজিআইএস এক্সটেনশানটি gcস্কিমাতে ইনস্টল করার জন্য এখানে উদাহরণগুলি রয়েছে :

CREATE SCHEMA gc;

CREATE EXTENSION postgis SCHEMA gc;

আপনি যদি ইতিমধ্যে এটি ইনস্টল করে থাকেন তবে পোস্টজিআইএস এবং এর বিষয়বস্তুগুলিকে পোস্টজিআইএসের ২.৪.৪ সংস্করণের জন্য একটি নতুন স্কিমে সরাতে উদাহরণ কমান্ডগুলি এখানে রয়েছে :

CREATE SCHEMA gc;

UPDATE pg_extension
SET extrelocatable = TRUE
WHERE extname = 'postgis';

ALTER EXTENSION postgis
SET SCHEMA gc;

ALTER EXTENSION postgis
UPDATE TO "2.4.4next";

ALTER EXTENSION postgis
UPDATE TO "2.4.4";

এটি কঠোরভাবে প্রয়োজনীয় নয়; কেবল সহায়ক:

ALTER DATABASE whatever
SET search_path = public,gc;

1

কেনি এভিট ইতিমধ্যে সবচেয়ে গুরুত্বপূর্ণ বিষয়গুলি ব্যাখ্যা করেছেন। তবুও, এখানে কিছু অতিরিক্ত তথ্য দেওয়া হয়েছে:

পোস্টগ্র্যাস্কল-এর ডেটাবেস, টেবিল স্পেস এবং স্কিমাস রয়েছে এবং এক ডাটাবেস থেকে অন্য ডাটাবেসে যোগ দেওয়া অসম্ভব, কারণ সেগুলি কঠোরভাবে বিচ্ছিন্ন। একটি ডাটাবেসের একাধিক স্কিমা থাকতে পারে এবং একটি স্কিমা থেকে অন্য স্কিমায় কিছু যোগ করা সম্ভব। আরও তথ্যের জন্য ডক্সটি দেখুন:

আপনার জিসি স্কিমাতে পোস্টজিআইএস লোড করার আর একটি সম্ভাবনা হ'ল:

t=# create schema gc;
CREATE SCHEMA
t=# set search_path to gc;
SET
t=# create extension postgis;
CREATE EXTENSION

আমি আরক ক্যাটালগ বা প্যাগাডমিনে বিশেষজ্ঞ নই, তবে আমি অনুমান করি যে নিম্নলিখিত তিনটি সম্ভাবনার মধ্যে একটি ঘটেছে:

  1. PostgreSQL জ্যামিতিক datatypes সমর্থন নেটিভ । তবে আপনার এটি জিও কনটেক্সটসে বিশ্বাস করা উচিত নয়, কারণ সিআরএস মেটাডেটার পাশাপাশি রূপান্তর কার্যকারিতা দেওয়া হয় না। আপনি সবে ভাগ্যবান হয়েছিলেন এবং কিছুই ভাঙেনি।
  2. আর্ক ক্যাটালগ একরকম, কোনও পোস্টজিআইএস এক্সটেনশান না পেয়ে ব্যবহারকারীকে না জানিয়ে এটি তৈরি করেছে। এটি যাচাই করতে আপনি এই ধাপের আগে এবং পরে বিদ্যমান সারণীগুলি দেখতে পারেন।

পিএসকিএল-তে আপনি টাইপ করে এটি করতে পারেন:

\d
           List of Relations
 Schema |       Name        |   Type  | Owner 
--------+-------------------+---------+----------
 gc     | geography_columns | View    | postgres
 gc     | geometry_columns  | View    | postgres
 gc     | raster_columns    | View    | postgres
 gc     | raster_overviews  | View    | postgres
 gc     | spatial_ref_sys   | Table   | postgres

আপনি যদি এটি দেখতে পান, পোস্টজিআইএস একটি এক্সটেনশন হিসাবে ইনস্টল করা হয়েছে। তৃতীয় সম্ভাবনাটি হ'ল আর্ককিগ্ল্যাজ এই জাতীয় কিছু করে:

set search_path to $all_schemas;
import to gc;

এক্ষেত্রে আপনিও ভাগ্যবান হয়েছেন। তবে সম্ভবত, আর্কিগ্ল্যাগল শেষ পর্যন্ত আরও কিছু পরিশীলিত কাজ করে ...


0

আপনার সমাধান এখানে:

CREATE SCHEMA gc;

CREATE EXTENSION postgis SCHEMA gc;

যদি আপনি ইতিমধ্যে আপনার সর্বজনীন স্কিমাতে পোস্টজিআইএস এক্সটেনশানটি ইনস্টল করেছেন এবং গিসিতে স্থানান্তর করতে চান তবে নিম্নলিখিত কোডটি লিখুন:

UPDATE pg_extension 
  SET extrelocatable = TRUE 
    WHERE extname = 'postgis';

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