とあるシステムで数年前にmroongaで実装した部分を再度実行しようとしたところ、エラーを吐いてmigrateすらできなくなりました。
実際のところ
とあるモデル(Hoges)の検索画面でエラーを吐きました。
== UseMroongaInEntriesTable: migrating ======================================= -- execute(" ALTER TABLE hoges \n ENGINE = mroonga DEFAULT CHARSET utf8\n") -> 0.0192s -- execute(" ALTER TABLE hoges\n ADD FULLTEXT INDEX index_hoges_on_name (name)\n") rake aborted! StandardError: An error has occurred, all later migrations canceled: Mysql2::Error: The used table type doesn't support FULLTEXT indexes: ALTER TABLE hoges ADD FULLTEXT INDEX index_hoges_on_name (name) (以下略
migrateでfulltext云々でコケる場合、素直にmodelを見に行く事をオススメします。
私の場合、参考もとにした記事のモデルが「entries」なのに対して、
使ってるモデルは「Hoges」だったのでブッキングが起こっていた模様。
当時は小賢しくも力技でmodel生成を弄っていたようです。
そんなアクロバットな事をしなくとも最初からhogesのモデルでmroonga用のgenerateをすりゃいいだけの話でした。
$ rm db/migrate/20140503135707_use_mroonga_in_entries_table.rb $ rails g migration use_mroonga_in_hoges_table $ rake db:migrate
よく考えずに、丸写しするからこういう事になるわけです。
納期が迫っているような案件で冒険するべきじゃなかったな、俺。