2013-01-12 18 views
5

से postgresql स्थापना के बाद pg_trgm का उपयोग कैसे करें स्रोत से पोस्टग्रेस्क्ल 9.2.2 को सफलतापूर्वक स्थापित करने के बाद (ओपनएसयूएसई 11.4 पर, जिसमें यह संस्करण रिपॉजिटरीज़ में नहीं है), मैं डेटाबेस को पुनर्स्थापित करने की कोशिश कर रहा हूं जो pg_trgm का उपयोग करता है विस्तार। इसका परिणाम त्रुटियों में होता है क्योंकि pg_trgm नहीं मिला है।स्रोत

इस स्टैक ओवरफ्लो प्रश्न से: Similarity function in Postgres with pg_trgm, मैं इकट्ठा करता हूं कि pg_trgm/usr/share/postgresql // contrib में होना चाहिए, लेकिन मेरे/usr पेड़ में कहीं भी कोई contrib फ़ोल्डर नहीं है।

इसके अलावा, मुझे पोस्टग्रेस एक्सटेंशन तंत्र कैसे काम करता है, या मैन्युअल रूप से एक्सटेंशन को कैसे इंस्टॉल किया जाए, इस बारे में स्पष्ट स्पष्टीकरण नहीं मिल रहा है।

पोस्टग्रेस्क्ल स्रोत पेड़ में एक contrib फ़ोल्डर है, लेकिन मुझे यकीन नहीं है कि इसका उपयोग कैसे करें। क्या मुझे इसे कहीं कहीं/usr पेड़ पर कॉपी करना चाहिए? क्या कोई मुझे postgresql में pg_trgm जैसे एक्सटेंशन को स्थापित करने के बारे में एक स्पष्टीकरण (या दे सकता है) बता सकता है?

उत्तर

11

मान लें कि आपने ./configure के साथ पोस्टग्रेस्क्ल कॉन्फ़िगर किया है, इसने डिफ़ॉल्ट उपसर्ग /usr/local/pgsql का उपयोग किया है, ताकि सब कुछ उस निर्देशिका के नीचे स्थापित हो।

जो उत्तर आप लिंक करते हैं वह डेबियन से संबंधित है, जो डेबियन नीति के अनुरूप एक अलग लेआउट का उपयोग करता है, लेकिन आपके मामले में /usr/share... अप्रासंगिक है। वैसे भी यह जानना वास्तव में जरूरी नहीं है कि contrib से सामान स्थापित करने के लिए, क्योंकि मैन्युअल रूप से कुछ भी कॉपी करने की आवश्यकता नहीं है।

स्रोत से pg_trgm विस्तार स्थापित करने के लिए, वहाँ दो चरण हैं:

1) का निर्माण और अपने PostgreSQL स्रोत पेड़ से इसे स्थापित:

$ cd /path/to/src/postgresql-9.2.2/contrib/pg_trgm 
$ make 
$ sudo make install # or su -c 'make install' if you don't use sudo 

2) अपने डेटाबेस में psql साथ इसे सक्रिय:

$ sudo -u postgres psql -d database -c "create extension pg_trgm;"

यह भविष्य में बनने वाले डेटाबेस पर डिफ़ॉल्ट रूप से सक्रिय कर लिया है करने के लिए,को यह आदेश लागूडेटाबेस।

1

मैं स्थापित करने के लिए Centos 7 और pg_trgm अनुमति के साथ पैकेज में Postgresql का उपयोग कर दिया है:

$ यम स्थापित PostgreSQL-योगदान