We hebben in onze app eenvoudige full text search nodig. In rails heb je dan plugins voor Sphinx, Ferret en Solr. Maar je kan natuurlijk ook die van MySQL gebruiken.
MySQL full text search kan je enkel gebruiken met MyISAM tables. In ons geval is dat niet echt een probleem. Who needs transactions anyway? :P
Goed, we genereren een nieuwe migration om de table engine aan te passen en de fulltext index toe te voegen.
execute "alter table mytable engine = MyISAM"
execute "alter table mytable add fulltext index fulltext_recipe (title, description)"
Tof. Dat werkt allemaal, tot je in je testen ook de full text search wil gebruiken. rake db:test:prepare
werkt namelijk niet meer.
De rails schema dumper houdt geen rekening met de MySQL fulltext indexen, en blijkbaar heeft die ook niet gezien dat ik de table engine gewijzigd heb. Op zich is het normaal want het fulltext gebeuren is MySQL specifiek, maar wel vervelend als het in de weg zit.
Een korte zoektocht op the internets en kijk Zak Mandhro had/heeft hetzelfde probleem en geeft ons een pluginnetje.
Het werkt, iedereen tevreden (ik toch) en we kunnen verder testen.
blog comments powered by Disqus