O método ActiveRecord integrado para criar índices (
add_index ) não suporta funções ou quaisquer outros recursos mais avançados. Em vez disso, você pode usar execute para criar o índice com SQL:execute <<-SQL
CREATE INDEX temporary_events_campaign_tinfoid_date_messagetype
ON temporary_events(templateinfoid, campaign, date(gw_out_time), messagetype);
SQL
Observe que o uso de
execute nas migrações pode ser problemático se você não estiver usando o formato de esquema SQL (config.active_record.schema_format = :sql ). Para obter mais informações, pesquise schema_format
.