কমান্ড সহ পোস্টগ্রিস ডেটাবেস-এর জন্য আমি একটি পরিষ্কার, কোনও মালিকের ব্যাকআপ ফেলেছি
pg_dump sample_database -O -c -U
পরে, যখন আমি সাথে ডাটাবেস পুনরুদ্ধার
psql -d sample_database -U app_name
তবে, আমি বেশ কয়েকটি ত্রুটির মুখোমুখি হয়েছি যা আমাকে তথ্য পুনরুদ্ধার করতে বাধা দেয়:
ERROR: must be owner of extension plpgsql
ERROR: must be owner of schema public
ERROR: schema "public" already exists
ERROR: must be owner of schema public
CREATE EXTENSION
ERROR: must be owner of extension plpgsql
আমি সরল-পাঠ্য এসকিউএল pg_dump
উত্পন্ন উত্সে খনন করেছি এবং আমি দেখতে পেয়েছি এটিতে এসকিউএল রয়েছে
CREATE SCHEMA public;
COMMENT ON SCHEMA public IS 'standard public schema';
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
আমি মনে করি এর কারণগুলি হ'ল ব্যবহারকারীর স্কিমা app_name
পরিবর্তন করার সুযোগ নেই public
এবং plpgsql
।
আমি এই সমস্যাটি কীভাবে সমাধান করতে পারি?
plpgsql
তাহলেDROP EXTENSION plpgsql
আপনি আগেpg_dump
। এটি আপনার অ্যাপ্লিকেশনটিকে একটি দুর্দান্ত ব্যবহারকারীর তুলনায় নিরাপদ এবং এটি ত্রুটিগুলি উপেক্ষা করার চেয়ে সুবিধাজনক (আপনি যদি ব্যবহার করেন তবে বোমাটি ব্যবহার করেন )--single-transaction
বা-v ON_ERROR_STOP=1
। এটি একটি পরিচিত সমস্যা, [পোস্টগ্রিস বিকাশকারীদের দ্বারা দৈর্ঘ্যে আলোচনা করা | postgresql.org/message-id/… তবে 9.3 হিসাবে ঠিক করা হয়নি।