संक्षेप में, आप मौजूदा डेटा भ्रष्टाचार को जोखिम में डाले बिना केवल phpPgAdmin या SQL के साथ ऐसा नहीं कर सकते हैं .आपको सभी डेटा निर्यात करना होगा, सही एन्कोडिंग के साथ डेटाबेस बनाना होगा और निर्यात किए गए डेटा को पुनर्स्थापित करना होगा।
आपको इस तरह आगे बढ़ना चाहिए:
-
डेटाबेस डंप बनाएं :
pg_dump your_database > your_database.sqlयह आपके डेटाबेस को वर्तमान में आपके पास मौजूद एन्कोडिंग में sql प्रारूप में सहेज लेगा।
-
डेटाबेस हटाएं (या इसका नाम बदलें):
DROP DATABASE your_databaseयदि आपके पास इसे करने के लिए पर्याप्त संग्रहण है, तो मेरा सुझाव है कि आप पुराने डेटाबेस को तब तक छोड़ दें जब तक कि आप यह सुनिश्चित न कर लें कि नए के साथ सब कुछ ठीक है, नाम बदलें यह:
ALTER DATABASE your_database RENAME TO your_database_backup; -
नए एन्कोडिंग के साथ डेटाबेस बनाएं :
CREATE DATABASE your_database WITH ENCODING 'UNICODE' TEMPLATE=template0; -
पहले बनाए गए डंप से डेटा आयात करें :
PGCLIENTENCODING=YOUR_OLD_ENCODING psql -f your_database.sql your_databaseआपको psql क्लाइंट एन्कोडिंग को पुराने डेटाबेस में सेट करने की आवश्यकता है।
ऑन-द-फ्लाई एन्कोडिंग बदलना संभव नहीं है क्योंकि इसके लिए अधिकांश आंतरिक डेटाबेस डेटा को फिर से लिखना होगा जो मेरे द्वारा वर्णित डीबी तरीके को फिर से बनाने के लगभग बराबर है।
डेटाबेस के बारे में आंतरिक पोस्टग्रेज़ सूचनाओं को बदलना संभव है और इस परिवर्तन के बाद कोई भी नया डेटा सही ढंग से सहेजा जाएगा, हालांकि आपका मौजूदा डेटा दूषित हो सकता है .