레일즈 2.3.2 어플리케이션에서 MySQL 풀 텍스트 인덱스를 사용하고 있습니다. 마이 그 레이션에서 원시 SQL을 통해 인덱스를 추가했습니다. 그러나 schema.rb에 문제가있는 것으로 알려진 문제점이 있습니다. Rails는 전체 텍스트 색인을 이해하지 못하고 일반 색인을 작성하려고합니다.레일즈 2.3.2가있는 MySQL Fulltext 인덱스 (마이 그 레이션 문제)
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"
좋은 생각하지만, 경우에 나는이와 함께 자신을 처리하려면, 무엇을 내가 할 수 있을까? –
을 스핑크스 (*는 TS와 함께 사용할 때 * 아주 좋은 선택입니다.) 또한 cron 작업으로 실행중인 데몬을 유지하고 인덱스를 다시 작성해야합니다. 작은 프로젝트에서 네이티브 MySQL 접근 방식을 사용해 보겠습니다. –