2012-05-25 17 views
12

पर contrib मॉड्यूल को कैसे सक्षम करें I Heroku पर नए पोस्टग्रेज़ 9 साझा डेटाबेस में contrib मॉड्यूल का उपयोग करने का प्रयास कर रहा हूं। अधिक विशेष रूप से, pg_trgm और fuzzystrmatch मॉड्यूल। documentation में यह कहते हैंहेरोकू पोस्टग्रेज़ डेटाबेस

इसके अलावा, कई मानार्थ एक्सटेंशन fuzzystrmatch, pg_trgm, और unaccent रूप में उपलब्ध हैं।

मुझे साझा किए गए हेरोकू डेटाबेस पर वास्तव में इन मॉड्यूल को सक्षम करने के लिए कैसे कोई प्रलेखन नहीं मिल रहा है। नीचे उत्तर देखें।

नोट:

मैं उन्हें

heroku pg:psql HEROKU_POSTGRESQL_BROWN 

साथ डेटाबेस से कनेक्ट और

create extension pg_trgm 
create extension fuzzystrmatch 

चलाकर जोड़ने की कोशिश की लेकिन साथ इसका इस्तेमाल करने की कोशिश कर के बाद

SELECT levenshtein('tests', 'test'); 

यह अभी भी कहा

ERROR: function levenshtein(unknown, unknown) does not existLINE 1: SELECT levenshtein('tests', 'test'); 
      ^
HINT: No function matches the given name and argument types. You might need to add explicit type casts. 

किसी को पता है कि ऐसा क्यों होता?

उत्तर

16

स्टैक ओवरफ़्लो को स्कोर करते समय here मिला। पता नहीं क्यों यह मेरी किसी भी Google खोज में नहीं आया। यहां प्रश्न छोड़ने के लिए जा रहे हैं यदि कोई और इस खोज के लिए एक ही शब्द का उपयोग करता है।

मॉड्यूल को सक्षम करने के लिए, आप उन्हें एक प्रवास को जोड़ने के लिए इस प्रकार की जरूरत है:

def up 
    execute "create extension fuzzystrmatch" 
    execute "create extension pg_trgm" 
end 
+2

नोट: इस काम के लिए आपको postgresql 9.1 पर होना होगा। पुराने संस्करण से अपग्रेड करने के लिए निम्न कार्य करें: dev (https://gist.github.com/2883249), प्रोड (https://devcenter.heroku.com/articles/upgrading-postgres-versions) – jfeust

+2

आप एक प्राप्त कर सकते हैं 'इको' शो extwlist.extensions 'के साथ Heroku Postgres पर उपलब्ध एक्सटेंशन की पूरी सूची heroku pg: psql' https://devcenter.heroku.com/articles/heroku-postgres-extensions-postgis-full-text-search – GregB

7

रेल के नए संस्करण में यह करने के लिए पर्याप्त होना चाहिए:

def change 
    enable_extension "fuzzystrmatch" 
    enable_extension "pg_trgm" 
end 

आप लिखने के लिए की जरूरत है up और down विधियों, enable_extension पर संबंधित विधि disable_extension है।

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