Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

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

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