পোস্টজিআইএস-এ পাবলিক ব্যতীত স্কিমা ব্যবহার করছেন?


21

আমি বর্তমানে উবুন্টুতে পোস্টজিআইএস ২.০.২ এবং পোস্টগ্রিসকিউএল ৯.১..6 এর একটি নতুন ইনস্টল সেট আপ করছি। আমি সম্প্রতি কিছু তথ্য পেয়েছি যা নির্দেশ করে যে সমস্ত ডেটা সঞ্চয় করার জন্য পাবলিক স্কিমা ব্যবহার করা ভাল ধারণা নয়।

এই কারণে, আমি ডেটা নামক একটি স্কিমা সেট আপ করেছি এবং নিজেকে মালিক বানিয়েছি, তবে এটি কী ভাল ধারণা?

আমার উদ্বেগগুলি হ'ল:

  1. মালিককে সেট করার পাশাপাশি, এই নতুন স্কিমা তৈরি করার সময় আমাকে প্রাইভেলিজ ট্যাবে জিনিসগুলিতে মনোযোগ দেওয়ার প্রয়োজন হতে পারে (পিগএডমিন তৃতীয় মাধ্যমে);
  2. আমি আমার ডেটা পাবলিক স্কিমাতে সংরক্ষণ করে এবং ব্যাকআপ / পুনরুদ্ধার করার আগে সমস্ত ডেটা পৃথক স্কিমাতে ডাম্পিং করে একই উপকারগুলি নাও পেতে পারি (এটি ogr2ogr ব্যবহার করার সময় কয়েকটি কীস্ট্রোক সংরক্ষণ করতে পারে); এবং
  3. আমার নতুন ডেটা স্কিমে ডিফল্ট পোস্টজিআইএস টেবিল এবং দর্শন না পেয়ে আমি সমস্যায় পড়তে পারি (তারা একই ডাটাবেসের মধ্যে পাবলিক স্কিমে রয়েছে)।

1
নতুন উত্তরটি এখানে দেখুন gis.stackexchange.com/a/270522/6052
ইভান ক্যারল

3
হ্যাঁ, এটি এখনও বৈধ। এটির প্রধান বিষয় হ'ল পরিষ্কার, কারণ আপনি ব্যবহারকারীর ডেটা সিস্টেমের ডেটা এবং ফাংশন থেকে আলাদা করেন।
জন পাওয়েল 19 '

আমি কোনও পোস্টজিআইএস ব্যবহারকারী নই তবে আমার সন্দেহ আছে যে আপনার প্রশ্নের সর্বোত্তম উত্তরটি এখন gis.stackexchange.com/a/270522/115 হতে পারে তাই আপনি যদি রাজি হন তবে আমি আপনাকে এটিতে স্বীকৃত চেকমার্কটি স্থানান্তর করতে উত্সাহিত করব।
পলিজিও

1
এই প্রশ্ন দুটি প্রশ্ন করা উচিত। গৃহীত উত্তর লিখিত হিসাবে প্রশ্নের উত্তর দেয় না। এটি এই প্রশ্নের পুনরায় খোলা উচিত কারণ এটি এই প্রশ্নের সদৃশ নয় , যা জিজ্ঞাসা করছে যে পোস্টজিআইএস অবজেক্টগুলি publicস্কিমায় না থাকা বস্তুগুলির সাথে নিজেরাই কাজ করতে পারে কিনা asking অন্য প্রশ্নটি পোস্টজিআইএস এক্সটেনশন অবজেক্টগুলি ব্যতীত অন্য কোনও স্কিমায় ইনস্টল করার বিষয়ে public। এ দুটি আলাদা জিনিস!
কেনি ইভিট

উত্তর:


7

এটি এখন সরকারী সাইটে অন্য একটি স্কিমে মুভি পোস্টজিআইএস এক্সটেনশন শিরোনামের একটি পৃষ্ঠায় সম্বোধন করা হবে । সঠিক পদ্ধতিটি এতে এক্সটেনশনটি ইনস্টল করা public। এটিই একমাত্র বিকল্প। এক্সটেনশন আর স্থানান্তর সমর্থন করে না। পরবর্তী জিনিসটি নিম্নলিখিত কমান্ডগুলি চালনা করা (সাইট থেকে অনুলিপি করা),

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

ALTER EXTENSION postgis 
  SET SCHEMA postgis;

2
এটি লিখিত হিসাবে প্রশ্নের উত্তর দেয় না ; এটি গ্রহণযোগ্য উত্তর হওয়া উচিত নয় । এটি পরিষ্কারভাবে জিজ্ঞাসা করছে যে "আমার নতুন স্কিমে ডিফল্ট পোস্টজিআইএস টেবিল এবং দর্শন না থাকা সম্পর্কে data(তারা publicএকই ডাটাবেসের মধ্যে স্কিমে রয়েছে)"। এই উত্তরটি দরকারী, এবং এটি আমি যা খুঁজছিলাম, তবে এটি সরাসরি প্রশ্নের সাথে সম্পর্কিত নয় ।
কেনি ইভিট

20

আপনি যখন কোনও পোস্টজিআইএস ডাটাবেসকে স্থান-সক্ষম করতে সক্ষম হন, তখন প্রাসঙ্গিক ফাংশন, এসআরএস টেবিল এবং মতামতগুলি আপনার বিবরণ হিসাবে পাবলিক স্কিমে স্থাপন করা হয়। এর অর্থ এই নয় যে আপনার বা সমস্ত নিজস্ব স্থানের টেবিল একই পাবলিক স্কিমে থাকা দরকার। পোস্টজিআইএস এখনও "নতুন" স্কিমে সমস্ত স্থানিক ডেটা নিয়ে কাজ করবে।

আসলে, আমি সাধারণত আমার অ্যাপ্লিকেশন-নির্দিষ্ট টেবিলগুলি একটি পৃথক স্কিমাতে রাখি। এইভাবে, যদি আপনাকে পোস্টজিআইএস-এ একটি বড় সংস্করণ আপগ্রেড করার দরকার হয় তবে আপনি আপনার অ্যাপ্লিকেশন-নির্দিষ্ট টেবিল ব্যাকআপ রাখতে পারেন এবং স্থানিক সরঞ্জামগুলি প্রতিস্থাপনকারী থেকে পৃথক প্রক্রিয়া হিসাবে পুনরুদ্ধার করতে পারেন।

সুতরাং, আমি মনে করি আপনি ভাল করছেন। অবশেষে, আপনি যদি ইতিমধ্যে এটি না করেন তবে অনুসন্ধানের পথে নতুন স্কিমা যুক্ত করা ভাল ধারণা:

ALTER DATABASE my_db SET search_path = gc, public;


ধন্যবাদ মার্টিন এর অর্থ কি আমি "পাবলিক" ব্যতীত কাস্টম স্কিমে টেবিলে স্থানিক ফাংশনগুলি ব্যবহার করতে সক্ষম?
alextc

আপনি কীভাবে অন্য স্কিমে ডেটা যুক্ত করবেন ie না public? উদাহরণস্বরূপ ডেটা যুক্ত করা হচ্ছে। shp2psqlথেকে test.tableএখনো ডেটা রাখে public?
নটোল

@knutole। আমি উল্লেখ করেছি যেহেতু আমি আমদানি / নতুন বৈশিষ্ট্য ক্লাসগুলিতে আর্কিটেলগ ব্যবহার করেছি। আমি নিশ্চিত নই যে আপনি জনসাধারণ ব্যতীত অন্য কোনও কাস্টম স্কিমে ডেটা যুক্ত করতে shp2psql ব্যবহার করতে পারেন কিনা।
alextc

1
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত।
কেনি এভিট

12
  1. আপনি স্কিমার সাহায্যে তৈরি করতে পারেন এমন একটি সম্ভাব্য সাংগঠনিক কৌশল হ'ল কোনও ব্যবহারকারীকে একটি স্কিমাতে প্রচণ্ড চালাতে দেওয়া, তবে অন্যটিতে কিছু করতে ব্যর্থ হওয়া। সুতরাং আপনি যদি এইভাবে স্কিম ব্যবহার করতে চান তবে এটি পিজএডমিনের সুবিধাগুলি ট্যাবে করা যেতে পারে। তবে এটি করার দরকার নেই, সুতরাং আপনি যদি একাধিক স্কিমা জুড়ে একই সুবিধা বজায় রাখতে চান তবে তা ঠিক।

  2. আপনি যে নিবন্ধগুলির সাথে লিঙ্ক করেছেন তার উপর ভিত্তি করে, সর্বসাধারণের কাছে রাখার সমস্যা হ'ল আপনি যখন ডেটা ডাম্প করেন, তখন আপনার সিস্টেমের টেবিল এবং সম্পর্কগুলি আপনার ডেটার সাথে মিশ্রিত হওয়ার সম্ভাবনা থাকে। আপনি যদি আপনার সমস্ত ডেটা একটি নতুন স্কিমাতে স্থানান্তরিত করেন তবে আপনাকে আর কখনও এটি নিয়ে চিন্তা করতে হবে না।

  3. কোনও ঝামেলা নেই। (প্রমাণের জন্য, লক্ষ্য করুন যে আপনাকে এসআরএস টেবিলটি অনুসন্ধান করতে চাইলে আপনাকে সর্বজনীন.স্পেসিয়াল_রেফ_সেসগুলি নির্দিষ্ট করতে হবে না))


6

একটি অতিরিক্ত টিপ (সম্ভবত আপনি ইতিমধ্যে এটি জুড়ে এসেছেন)। আপনি সম্ভবত ব্যবহারকারীর ডিফল্ট অনুসন্ধান_পথে "ডেটা" স্কিমা যুক্ত করতে চাইবেন। কিছুটা এইরকম:

ALTER USER <your_user_name> SET search_path=public,data,$USER; 

আপনার পয়েন্ট 2 সম্পর্কিত, কখনও কখনও যখন আপনার আর মূল ডিবিতে অ্যাক্সেস না থাকে তখন আপনাকে পুনরুদ্ধার করতে হবে। (এটি ব্যাকআপগুলির অন্যতম কারণ ...) যাতে আপনার যখন প্রয়োজন হয় তখন আপনার ডেটা আলাদা স্কিমাতে স্থানান্তরিত করার সুযোগ নাও পেতে পারে।


1

আমরা অস্থায়ী বিশ্লেষণ / দেব সারণির ফলাফলের জন্য সর্বজনীন স্কিমা ব্যবহার করি, তারপরে স্থায়ীভাবে ব্যবহারের জন্য আরও সংগঠিত স্কিমা (ফোল্ডার?) এ চলে যাই।

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