Wbudowana metoda ActiveRecord do tworzenia indeksów (add_index
) nie obsługuje funkcji ani innych bardziej zaawansowanych funkcji. Zamiast tego możesz użyć execute
aby utworzyć indeks za pomocą SQL:
execute <<-SQL
CREATE INDEX temporary_events_campaign_tinfoid_date_messagetype
ON temporary_events(templateinfoid, campaign, date(gw_out_time), messagetype);
SQL
Zauważ, że użycie execute
w migracjach może być problematyczne, jeśli nie używasz formatu schematu SQL (config.active_record.schema_format = :sql
). Aby uzyskać więcej informacji, wyszukaj schema_format
.