ডাটাবেসের মধ্যে কেবল একটি সারণী থেকে বিবৃতি সন্নিবেশ করতে pg_dump ব্যবহার করা হচ্ছে


121

আমি পোস্টগ্র্রেএসকিউএল INSERTব্যবহার করে একটি ডাটাবেসের মধ্যে একটি নির্দিষ্ট সারণী থেকে বিবৃতি হিসাবে সমস্ত সারি পাওয়ার উপায় খুঁজছি pg_dump

উদাহরণস্বরূপ, আমার টেবিল এ আছে এবং টেবিল এআইয়ের সমস্ত সারি INSERTবিবৃতি হিসাবে প্রয়োজন , এটির সাথে এই বিবৃতিগুলি কোনও ফাইলে ডাম্প করা উচিত।

এটা কি সম্ভব?

উত্তর:


229

যদি সংস্করণ <8.4.0

pg_dump -D -t <table> <database>

যোগ -aসামনে -tআপনি শুধুমাত্র টিপে চাই, ছাড়া তৈরি করুন টেবিল ইত্যাদি প্রথম স্থানে টেবিল সেট আপ করার জন্য।

সংস্করণ> = 8.4.0

pg_dump --column-inserts --data-only --table=<table> <database>

58
-D এবং -D বিকল্পগুলি পোস্টগ্রেএসকিউএল 8.4 থেকে সরানো হয়েছে (8.4.0 প্রকাশের নোট দেখুন)। আপনার এখন অবশ্যই "দীর্ঘ" নামগুলি ব্যবহার করতে হবে: pg_dump - কলাম-সন্নিবেশ - ডেটা-কেবল - টেবিল = <টেবিল> <ডেটাবেস>
ম্যাথু উড

1
-d, -a, এবং -tসংক্ষিপ্ত সংস্করণ এখনও বর্তমান, যদিও হয়। পিজি 11 এর সাথে চেক করা হয়েছে।
ডেমিসেক্স

--insertsঅন্য বিকল্প; এটি কিছুটা দ্রুত পুনরুদ্ধার করে তবে কলাম ক্রমের পরিবর্তনগুলি সহ্য করতে পারে না
অ্যান্ডি

34

আপনি যদি নিজের সন্নিবেশগুলি একটি .sql ফাইলে ডাম্প করতে চান :

  1. cdআপনি যে অবস্থানটি .sqlফাইল করতে চান সেই অবস্থানটিতে
  2. pg_dump --column-inserts --data-only --table=<table> <database> > my_dump.sql

> my_dump.sqlকমান্ড নোট করুন । এটি মাই_ডাম্প নামের স্কেল ফাইলটিতে সমস্ত কিছু রাখবে


2

একটি স্ক্রিপ্টে রাখুন আমি এর মতো কিছু পছন্দ করি:

#!/bin/bash
set -o xtrace # remove me after debug
TABLE=charge_unit
DB_NAME=prod_sit_entities_db

BASE_DIR=/var/backups/someDir
LOCATION="${BASE_DIR}/myApp_$(date +%Y%m%d_%H%M%S)"
FNAME="${LOCATION}_${DB_NAME}_${TABLE}.sql"

# Create backups directory if not exists
if [[ ! -e $BASE_DIR ]];then
|       mkdir $BASE_DIR
|       chown -R postgres:postgres $BASE_DIR
fi

sudo -H -u postgres pg_dump --column-inserts --data-only --table=$TABLE $DB_NAME > $FNAME
sudo gzip $FNAME

1

আপনি যদি কোনও দূরবর্তী অ্যাক্সেস ব্যবহার করছেন এবং সমস্ত ডাটাবেস ডেটা ডাম্প করতে চান তবে আপনি ব্যবহার করতে পারেন:

pg_dump -a -h your_host -U your_user -W -Fc your_database > DATA.dump

এটি সমস্ত ডাটাবেস ডেটা এবং ব্যবহারের সাথে একটি ডাম্প তৈরি করবে

pg_restore -a -h your_host -U your_user -W -Fc your_database < DATA.dump

আপনার একই কাঠামো বিবেচনা করে আপনার ডেটা বেসে একই ডেটা toোকাতে

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