La méthode intégrée ActiveRecord pour créer des index (add_index
) ne prend pas en charge les fonctions ou toute autre fonctionnalité plus avancée. Au lieu de cela, vous pouvez utiliser execute
pour créer l'index avec SQL :
execute <<-SQL
CREATE INDEX temporary_events_campaign_tinfoid_date_messagetype
ON temporary_events(templateinfoid, campaign, date(gw_out_time), messagetype);
SQL
Notez que l'utilisation de execute
dans les migrations peut être problématique si vous n'utilisez pas le format de schéma SQL (config.active_record.schema_format = :sql
). Pour plus d'informations, recherchez schema_format
.