2013-04-12 10 views
19

मैंने इस प्रश्न का उत्तर खोजते समय अन्य पोस्ट पढ़ी हैं।पोस्टग्रेस्क्ल: त्रुटि: टाइप करें "citext" मौजूद नहीं है

प्रश्न: मैं PostgreSQL 9.1, और विस्तार 'citext' बनाया उपयोग कर रहा हूँ का उपयोग कर 'EXTENSION citext बनाएँ' लेकिन जब मैं प्रकार 'citext' के किसी भी कॉलम बनाने की कोशिश है, यह इस त्रुटि, त्रुटि फेंकता है: प्रकार "citext" नहीं है मौजूद ? मैंने शोध किया लेकिन कोई ठोस जवाब नहीं मिला? कोई विचार क्यों?

उत्तर

41

ठीक है इसे समझ लिया। मेरे पास कई डेटाबेस हैं और 0 डीको प्रत्येक डीबी के लिए उस डीबी में एक्सटेंशन इंस्टॉल करने के लिए चलाना होगा। आपको psql प्रॉम्प्ट पर करना होगा:

psql =# \c db_1 
CREATE EXTENSION citext; 

psql =# \c db_2 
CREATE EXTENSION citext; 

आशा है कि यह दूसरों की सहायता करे। धन्यवाद।

+1

Thanx! इससे बहुत मदद मिली :-) – user1829860

+0

क्या वैश्विक स्तर पर इस एक्सटेंशन को बनाने का कोई तरीका है, ताकि प्रत्येक डेटाबेस इसका उपयोग कर सके? –

3

@NullException सही है कि एक्सटेंशन को प्रत्येक डेटाबेस में बनाया जाना आवश्यक है। यदि आप स्वचालित रूप से एक एक्सटेंशन बनाया जाना चाहते हैं, तो आप इसे template1 डेटाबेस में बना सकते हैं जो (डिफ़ॉल्ट रूप से, कम से कम) डेटाबेस को "डेटाबेस बनाने" के लिए मॉडल के रूप में उपयोग किया जाता है, इसलिए उचित अनुमतियों के साथ, psql में:

\c template1 
create extension citext; 

फिर नए डेटाबेस में डिफ़ॉल्ट रूप से citext शामिल होगा।

संबंधित मुद्दे