4Trabes Historias de una empresa en 100 metros cuadrados

El blog de Trabe Soluciones

Soporte para índices fulltext en las migrations de Ruby on Rails

|

Como cabe esperar, las migrations de Ruby on Rails no tienen soporte directo para crear índices fulltext. Esto es bastante lógico, porque son una característica propia de mysql, no un estándar que sigan múltiples SGBD. Sin embargo, las migrations contemplan la posibilidad de ejecutar comandos directamente contra la base de datos. La sintaxis es muy sencilla:

1
execute "comando_a_enviar_a_la_base_de_datos"

Hay que tener en cuenta que en mysql solo es posible definir índices fulltext en tablas MyISAM.Utilizando la sintáxis que acabamos de ver, un ejemplo completo de como crear una tabla con un índice fulltext quedaría de la forma siguiente:

1
2
3
4
5
6
create_table("prueba", :force => true, : options=> "ENGINE=MyISAM") do |t|
  t.column("titulo", :string, :limit => 50)
  t.column("texto", :text)
end

execute "CREATE FULLTEXT INDEX FullText_texto_titulo ON prueba (titulo, texto)"

No es una solución portable, pero si es más elegante que tener un script separado para hacer este tipo de cosas.

Lo sentimos, pero los comentarios están cerrados