2009-04-17 11 views
7

मैं रेल 2.3.2 ऐप में MySQL पूर्ण टेक्स्ट इंडेक्स का उपयोग कर रहा हूं। मैंने अपने माइग्रेशन में मूल एसक्यूएल के माध्यम से इंडेक्स जोड़ा। लेकिन एक ज्ञात मुद्दा है जो schema.rb के साथ समस्याएं पैदा करता है। रेल फुलटेक्स्ट इंडेक्स को समझ नहीं पाते हैं और सामान्य इंडेक्स बनाने की कोशिश करते हैं।रेल के साथ MySQL फुलटेक्स्ट इंडेक्स 2.3.2 (माइग्रेशन समस्या)

Mysql::Error: BLOB/TEXT column 'text' used in key specification without a key length: CREATE INDEX `fulltext_sms` ON `sms` (`text`) 

वहाँ बिना बंदर-पैच रेल रेल 2.3.2 में इस समस्या को हल करने के लिए एक रास्ता है: जब schema.rb (जैसे परीक्षण, चश्मा, आदि) से डेटाबेस बनाने यह एक त्रुटि का कारण होगा? और यदि नहीं, तो इससे निपटने का सबसे अच्छा तरीका क्या है?

धन्यवाद!

मेरे माइग्रेशन:

class FulltextIndexCustomersSmsMessage < ActiveRecord::Migration 
    def self.up 
    execute('ALTER TABLE sms ENGINE = MyISAM') 
    execute('ALTER TABLE customers ENGINE = MyISAM') 
    execute('CREATE FULLTEXT INDEX fulltext_sms ON sms (text(500))') 
    execute('CREATE FULLTEXT INDEX fulltext_customer ON customers (fullname(255))') 
    end 

    def self.down 
    execute('ALTER TABLE sms ENGINE = innodb') 
    execute('ALTER TABLE customers ENGINE = innodb') 
    execute('DROP INDEX fulltext_sms ON sms') 
    execute('DROP INDEX fulltext_customer ON customers') 
    end 
end 

schema.rb:

add_index "sms", ["text"], :name => "fulltext_sms" 

उत्तर

1

कैसे पूर्ण-पाठ खोज इंजन है कि आसानी से रेल में जोड़ा जा सकता है में से एक का उपयोग कर के बारे में? आपको mysql के साथ अपने आप को करने की परेशानी बचाता है। दो अच्छे विकल्प, जो बहुत सारे अनुकूलन प्रदान करते हैं, हैं:

+0

अच्छा विचार है, लेकिन इस मामले में मैं इस के साथ अपने आप को सौदा करना चाहते हैं, क्या क्या मैं कर सकता हूँ –

+0

स्फिंक्स के साथ (जो * टीएस के साथ उपयोग किए जाने पर एक बहुत अच्छी पसंद है) आपको डेमॉन को क्रॉन नौकरी के साथ चलने और इंडेक्स का पुनर्निर्माण करने के साथ भी निपटना होगा। मैं एक छोटी परियोजना पर मूल MySQL दृष्टिकोण का उपयोग करने की कोशिश करने जा रहा हूँ। –

5

मैं तुम्हें अपने environment.rb में यह निर्धारित करने की आवश्यकता लगता है https://rails.lighthouseapp.com/projects/8994/tickets/74-problem-with-tests-and-custom-mysql-fulltext-indexes

+0

यह मेरे लिए समस्या का समाधान नहीं करता है ... मेरे पास पर्यावरण.आरबी में वह पंक्ति है और माइग्रेशन में एक अनुक्रमणिका बनाने की कोशिश कर रहा हूं। यह ओपी के समान त्रुटि देता है। –

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