আমি কীভাবে আমার publicস্কিমাটি পুরো টেবিল কাঠামো, ডেটা, ফাংশন, এফ, পি, এবং ইত্যাদি দিয়ে একই ডাটাবেসে অনুলিপি করতে পারি পোস্টগ্রিসের
আমার সংস্করণ 8.4
পিএস আমার স্কিমা নোট ডাটাবেস অনুলিপি করতে হবে
আমি কীভাবে আমার publicস্কিমাটি পুরো টেবিল কাঠামো, ডেটা, ফাংশন, এফ, পি, এবং ইত্যাদি দিয়ে একই ডাটাবেসে অনুলিপি করতে পারি পোস্টগ্রিসের
আমার সংস্করণ 8.4
পিএস আমার স্কিমা নোট ডাটাবেস অনুলিপি করতে হবে
উত্তর:
পিজি_ডাম্প / পিজি_রেস্টারে নিজেই এটি করার সহজ কোনও উপায় নেই। আপনি অস্থায়ীভাবে ডাটাবেস অপসারণ করতে সক্ষম হন তবে আপনি নিম্নলিখিতগুলি চেষ্টা করতে পারেন।
pg_dump -n my_schema -f '/path/to/file.pgsql' my_db। postgresপিডাব্লু-কম peerঅনুমোদনের সাথে সুপারভাইজার হিসাবে সবচেয়ে সহজ pg_haba.conf। পুনরুদ্ধার করুন পরে আপনি আসল স্কিমা নতুন নামকরণ হয়েছে: psql my_db -f '/path/to/file.pgsql'। আপনার যদি একটি সরল এসকিউএল ডাম্প থাকে, আপনার প্রয়োজন হবে নাpg_restore ।
pg_dump -n schema_name > dump.sql vi dump.sql # edit the schema name psql: psql -f dump.sql
আপনি যদি পিএইচপি দিয়ে আটকে থাকেন তবে ব্যাক টিক ব্যবহার করুন
`/usr/bin/pg_dump-n myschema mydb -U username > /tmp/dump.sql`
বা exec () কমান্ড। পরিবর্তনের জন্য আপনি একইভাবে সেড ব্যবহার করতে পারেন।
এখানে আরও 6 টি চর রয়েছে
public)।
PgAdmin ব্যবহার করে আপনি নিম্নলিখিতটি করতে পারেন। এটি বেশ ম্যানুয়াল, তবে আপনার যা প্রয়োজন তা হতে পারে। একটি স্ক্রিপ্ট ভিত্তিক পদ্ধতির অনেক বেশি আকাঙ্ক্ষিত হবে। আপনার যদি অ্যাডমিন অ্যাক্সেস না থাকে এবং আপনার ডাটাবেস বড় হয় তবে এটি কতটা ভাল কাজ করবে তা নিশ্চিত নয় তবে আপনার স্থানীয় কম্পিউটারে আপনার যে ডেভলপমেন্ট ডাটাবেস রয়েছে তা ঠিক ঠিক কাজ করা উচিত।
আপনি অনুলিপি করতে এবং ব্যাকআপ ক্লিক করতে চান স্কিমা নামটি ডান ক্লিক করুন। (আপনি এর থেকে আরও গভীরতর হতে পারেন এবং উভয়ের পরিবর্তে কাঠামোটিকে কেবল ব্যাকআপ করতে বেছে নিতে পারেন)।
ব্যাকআপ ফাইলটিকে একটি নাম দিন এবং একটি ফর্ম্যাটও চয়ন করুন। (আমি সাধারণত টার ব্যবহার করি)
ব্যাকআপ ক্লিক করুন।
আপনি যে ব্যাক আপটি নিয়েছেন সেটি থেকে রাইট ক্লিক করুন এবং বৈশিষ্ট্যগুলি ক্লিক করুন এবং অস্থায়ীভাবে এর অন্য কোনও নামকরণ করুন। (যেমন টেম্প্রেনেম )
স্কিমার মূলটি ক্লিক করুন এবং অবজেক্ট ব্রাউজারে এটিকে ডান ক্লিক করুন এবং নতুন স্কিমা তৈরি করতে ক্লিক করুন এবং স্কিমার নামটি সর্বজনীন দিন । এটি আপনার ব্যাকআপ থেকে অনুলিপি করা স্কিমা হবে।
পদক্ষেপ 5 থেকে নতুন স্কিমা সর্বজনীন ডান ক্লিক করুন এবং পুনরুদ্ধার ক্লিক করুন। পদক্ষেপ 3 এ ব্যাকআপ ফাইল থেকে পুনরুদ্ধার করুন।
নতুন স্কিমা জনসাধারণকে আলাদা নামে (যেমন নিউজচেমা ) নতুন নাম দিন ।
স্কিমা টেম্প্রেনেমের নামটি পুনরায় নামকরণ করুন ৪ ম ধাপ থেকে আসল নামটিতে ।
আপনি ব্যবহার করতে পারেন
CREATE DATABASE new_db TEMPLATE = old_db;
তারপরে আপনার প্রয়োজন নেই এমন সমস্ত স্কিমা ফেলে দিন:
DROP SCHEMA public CASCADE;
DROP SCHEMA other CASCADE;
একমাত্র ত্রুটিটি হ'ল পুরানো_ডিবিতে সমস্ত সংযোগগুলি অনুলিপি তৈরি করার আগে অবশ্যই নির্ধারণ করতে হবে (সুতরাং CREATE DATABASEবিবৃতিটি চালিত প্রক্রিয়াটি অবশ্যই টেমপ্লেট 1 এর সাথে সংযুক্ত হতে হবে)
যদি এটি কোনও বিকল্প না হয় তবে pg_dump / pg_restore এটি করার একমাত্র উপায়।
ব্যবহারকারী 1113185 উত্তরে প্রসারিত হচ্ছে , এখানে পিএসকিএল / পিজি_ডাম্প ব্যবহার করে একটি সম্পূর্ণ ওয়ার্কফ্লো রয়েছে।
রপ্তানির সমস্ত বস্তু নিম্নলিখিত old_schemaকরুন এবং নতুন মধ্যে আমদানির তাদের new_schemaস্কিমা হিসেবে user, এ dbnameডাটাবেসের:
psql -U user -d dbname -c 'ALTER SCHEMA old_schema RENAME TO new_schema'
pg_dump -U user -n new_schema -f new_schema.sql dbname
psql -U user -d dbname -c 'ALTER SCHEMA new_schema RENAME TO old_schema'
psql -U user -d dbname -c 'CREATE SCHEMA new_schema'
psql -U user -q -d dbname -f new_schema.sql
rm new_schema.sql
public?