Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

mroongaで妙なエラーを吐いた場合、migrateファイルを警戒する

とあるシステムで数年前に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

よく考えずに、丸写しするからこういう事になるわけです。
納期が迫っているような案件で冒険するべきじゃなかったな、俺。