मैं PostgreSQL 8.4 में यूनिकोड डेटाबेस कैसे बनाऊं?


14

मैंने डिफ़ॉल्ट विकल्पों के साथ postgresql-8.4 पैकेज स्थापित किया । सब कुछ ठीक काम किया, हालांकि मैं यूनिकोड डेटाबेस बनाने के लिए प्रबंधन करने के लिए प्रतीत नहीं कर सकता:

-- This doesn't work
createdb test1 --encoding UNICODE

-- This works
createdb test2

त्रुटि संदेश,

createdb: database creation failed: ERROR:  new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII) 

थोड़ा हैरान है क्योंकि (afaik) मैं नए db बनाने के लिए टेम्पलेट का उपयोग नहीं करता हूं, या क्या यह किसी कारण के लिए डिफ़ॉल्ट रूप से "पोस्टग्रेज" डेटाबेस का संदर्भ है?

या शायद मैं एक .confफाइल में एक सेटिंग याद आ रही है ?

जवाबों:


13

यह जिस टेम्पलेट की बात कर रहा है template1, यदि आप किसी अन्य टेम्पलेट को निर्दिष्ट नहीं करते हैं, तो इसका उपयोग किया जाता है।

सबसे तेज़ वर्कअराउंड है कि आप template0इसके बजाय अपने डेटाबेस का उपयोग करके बनाते हैं createdb --template=template0

आप एक अधिक समझदार लोकेल के साथ अपने पूरे क्लस्टर को गिराना और पुन: स्थापित करना चाह सकते हैं। आपने संभवतः अपने ऑपरेटिंग सिस्टम को डिफ़ॉल्ट रूप से C लोकेल का उपयोग करने के लिए सेट किया है। आप इन चरणों के साथ डेटाबेस सिस्टम को फिर से संगठित कर सकते हैं:

sudo pg_dropcluster --stop 8.4 main
sudo pg_createcluster --locale=en_US.utf8 --start 8.4 main

आपको जो भी लोकेल पसंद है, उसे जरूर इस्तेमाल करें।


लोकेल को संशोधित करने के लिए क्लस्टर को छोड़ना बिल्कुल वैसा था जैसा मैं देख रहा था, धन्यवाद :)
Wildpeaks

आदमी, बहुत खुदाई के बाद, वह भी वही था जो तलाश कर रहा था! उबंटू लोकेल के साथ पीजी काम करने के अलावा और कुछ नहीं कर सकता है, यहां तक ​​कि इसे बदल भी सकता है। लेकिन UTF8 के साथ क्लस्टर को री-क्रिएट करने का काम :) किया। चीयर्स!
लुकासरूडा

आप उपयोग करना चाहते हैं --locale=C.UTF-8(आपके सिस्टम पर समर्थित स्थानों की सूची locale -a)।
tricasse

3

हो सकता है कि आपको क्लस्टर बनाने से पहले लोकेल को कॉन्फ़िगर करने की आवश्यकता हो

export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8
dpkg-reconfigure locales

मुझे लगता है कि यह मेरे लिए काम किया!
alfonx

dpkg-reconfigure sudo की आवश्यकता है ...
Cerin

-1

मुझे लगता है तुम्हारा मतलब:

createdb test42 --encoding utf-8

वही करना चाहिए जो आप चाहते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.