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