সুনির্দিষ্ট সারণী এবং পোস্টগ্রিজ এন্ট্রিগুলির জন্য একটি ডাটাবেস ডাম্প তৈরি করা


94

আমার কয়েকশ টেবিল সহ একটি ডাটাবেস রয়েছে, আমাকে যা করতে হবে তা সুনির্দিষ্ট টেবিলগুলি রফতানি করা এবং ডেটাগুলির জন্য একটি বর্গফিল ফাইলটিতে বিবৃতি inোকানো।

আমি জানি কেবলমাত্র বিবৃতি এটি অর্জন করতে পারে

pg_dump -D -a -t zones_seq interway > /tmp/zones_seq.sql

আমি কি প্রত্যেকটি টেবিলের জন্য এই বিবৃতিটি চালিত করব বা সমস্ত নির্বাচিত টেবিলগুলিকে একটি বড় স্কোএল বড়তে রফতানি করার জন্য অনুরূপ বিবৃতি চালানোর কোনও উপায় আছে কি? উপরের পিজি_ডাম্প কেবল সারণি স্কিমার রফতানি করে না, আমার উভয়ই দরকার both

যে কোন ধরণের সাহায্য গ্রহন করা হবে.

উত্তর:


160

ম্যানুয়াল থেকে ডানদিকে : " একাধিক টেবিল একাধিক-টি সুইচ লিখে নির্বাচন করা যেতে পারে "

সুতরাং আপনাকে আপনার সমস্ত সারণী তালিকাবদ্ধ করতে হবে

pg_dump --column-inserts -a -t zones_seq -t interway -t table_3 ... > /tmp/zones_seq.sql  

মনে রাখবেন যে আপনার যদি একই উপসর্গ (বা প্রত্যয়) সহ বেশ কয়েকটি টেবিল থাকে তবে আপনি -tপ্যারামিটারের সাহায্যে সেগুলি নির্বাচন করতে ওয়াইল্ডকার্ডগুলিও ব্যবহার করতে পারেন :

" এছাড়াও, টেবিলের প্যারামিটারকে পিএসকিএল এর commands ডি কমান্ড দ্বারা ব্যবহৃত একই বিধি অনুসারে একটি প্যাটার্ন হিসাবে ব্যাখ্যা করা হয় "


20
-T সুইচটি একইভাবে তবে টেবিলগুলি বাদ দিতে ব্যবহৃত হয়। আপনার যদি এক বা দুটি টেবিল ইত্যাদি
বাদে অন্য

4
-Dবিকল্প পিজি 9.1 অগ্রে মধ্যে উধাও হয়ে গেছে বলে মনে হয়
Epigene

4
-Dবিকল্প ছিল সংস্করণ 8.4 সরানো--column-insertsপরিবর্তে আপনাকে এখনই ব্যবহার করতে হবে।
mlovic

4
Pg_dump - হোস্ট 127.0.0.1 - পোর্ট 5432 - ব্যবহারকারীর নাম "<ব্যবহারকারীর নাম" - - কলাম-সন্নিবেশ --verbose - ফাইল "/ tmp / <filename.sql>" - টেবিল "^ <রিরেজ>> "" <tablename> "
থারিন্ডু জয়সুরিয়া

22

যদি এই নির্দিষ্ট সারণীগুলি একটি নির্দিষ্ট রেজেসের সাথে মেলে, আপনি pg_dump এ রেজিেক্স ইন-টি বিকল্পটি ব্যবহার করতে পারেন।

pg_dump -D -a -t zones_seq -t interway -t "<regex>" -f /tmp/zones_seq.sql <DBNAME>

উদাহরণস্বরূপ, "টেস্ট" দিয়ে শুরু হওয়া টেবিলগুলি ডাম্প করতে, আপনি ব্যবহার করতে পারেন

pg_dump -D -a -t zones_seq -t interway -t "^test*" -f /tmp/zones_seq.sql <DBNAME>

4
যদি এটি একটি রেজেক্স ছিল, এটি ^test.*পরিবর্তে হওয়া উচিত নয় ^test*?
msrd0

4
এটি কোনও রেজেক্স নয়, এটি "test*"
পোস্টগ্রাসের

অবৈধ নিয়মিত অভিব্যক্তি উত্পন্ন করে রেজেক্স ব্যবহার করা তুচ্ছ নয় : কোয়ানটিফায়ার অপারেন্ড অবৈধ ত্রুটি। তবে নিয়মিত অভিব্যক্তিটি সঠিক ... কেবলমাত্র খুব সাধারণ রেগেক্স বৈধ
পিটার ক্রাউস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.