আমি ভয় করি যে আপনি এই উত্তরটি পছন্দ করবেন না তবে বর্তমানে এটি অসম্ভব বলে মনে হচ্ছে। থেকে psql ডকুমেন্টেশন :
ভবিষ্যতের ক্যোয়ারী ফলাফলগুলি ফাইলের ফাইলনেমে বা ভবিষ্যতের ফলাফলগুলিকে পৃথক ইউনিক্স শেল থেকে কমান্ড চালানোর জন্য পাইপ করে। যদি কোনও আর্গুমেন্ট নির্দিষ্ট না করা থাকে তবে ক্যোয়ারী আউটপুটটি স্ট্যান্ডার্ড আউটপুটটিতে পুনরায় সেট হবে।
"অনুসন্ধানের ফলাফলগুলিতে" সমস্ত টেবিল, কমান্ড প্রতিক্রিয়া এবং ডাটাবেস সার্ভার থেকে প্রাপ্ত নোটিশগুলি পাশাপাশি বিভিন্ন ব্যাকস্ল্যাশ কমান্ডের আউটপুট যা ডাটাবেসকে জিজ্ঞাসা করে (যেমন \ d), তবে ত্রুটি বার্তা নয়।
এবং যেমন আপনি লক্ষ্য করেছেন, psqlইন্টারেক্টিভভাবে ব্যবহার করার সময় ত্রুটি বার্তাগুলি পুনর্নির্দেশ করার কোনও উপায় নেই ।
(আমি kinds o থেকে কোনও রকমের লাভ না করে সমস্ত ধরণের পুনর্নির্দেশের সাথে ঘুরে বেড়াচ্ছি It মনে হচ্ছে ক্যোয়ারী আউটপুট চ্যানেলটি ত্রুটি বার্তাগুলি প্রাপ্ত হওয়ার চেয়ে আলাদা - এবং সার্ভারের ত্রুটিগুলিও এবং আপনার পদ্ধতিতে উত্থাপিত বিভিন্ন উপায়ে যায়) ।
test=# SHOW client_min_messages;
client_min_messages
---------------------
notice
-- added the above to show it's not a config problem
CREATE FUNCTION raise_test() RETURNS integer AS
$body$
BEGIN
RAISE NOTICE 'notice';
RETURN 1;
END;
$body$
LANGUAGE plpgsql;
test=# \o | cat > out.sql
test=# SELECT raise_test(); -- you could put this in a file and call \i your_file, it's just the same
NOTICE: notice
test=# \o | cat > out.sql 2>&1
test=# SELECT raise_test();
NOTICE: notice
out.sql থাকে
raise_test
------------
1
(1 row)
উভয় ক্ষেত্রেই. এই কারণেই কোনও প্রক্রিয়া থেকে উত্থাপিত বার্তাগুলি আউটপুট দেওয়ার জন্য কী চ্যানেল / ফাইল বর্ণনাকারী ব্যবহার করা হয় সে সম্পর্কে আমি নির্লিপ্ত))
(পোস্টগ্রিসএসকিউএল-হ্যাকারগুলির উপর একটি থ্রেড রয়েছে যা এই সমস্যাটিতে কিছুটা আলোকপাত করতে পারে: http://postgresql.1045698.n5.nabble.com/psql-output-locations-td5068313.html )
কি এক সম্ভবত কাজ করতে পারে শুরু হয়েছে psqlমত
psql test >/tmp/psql.out 2>&1
এবং এটি নির্দিষ্ট ফাইলে সমস্ত আউটপুট পুনর্নির্দেশ করবে। এটির সাথে একমাত্র সমস্যা আপনার প্রম্পট এমনকি নেই এবং কমান্ডলাইন সম্পাদনা ক্ষমতা হারাবেন।