Jednym z najpowszechniejszych typów migracji jest migracja „dodaj indeks”. Indeksy służą do przyspieszenia wykonywania niektórych typów zapytań poprzez utworzenie osobnej struktury danych, w której przechowywane są wartości z określonej kolumny lub zestawu kolumn wraz ze wskaźnikiem do odpowiedniego wiersza w tabeli. Dzięki temu baza danych może szybko znaleźć wiersze spełniające kryteria zapytania, zamiast przeszukiwać całą tabelę.
Aby dodać indeks do tabeli w Railsach, musisz utworzyć nowy plik migracji. Można to zrobić za pomocą polecenia rails generate migration, po którym należy podać nazwę migracji i dodatkowe argumenty. Na przykład, aby dodać indeks do kolumny email w tabeli users, możesz uruchomić następujące polecenie:
rails generate migration add_index_to_users_email
Spowoduje to utworzenie nowego pliku migracji w katalogu db/migrate. Wewnątrz pliku zobaczysz klasę z metodą change. W tej metodzie zdefiniujesz instrukcje dotyczące modyfikowania schematu bazy danych.
Aby dodać indeks do kolumny email w tabeli users, możesz skorzystać z metody add_index. Ta metoda przyjmuje trzy argumenty: nazwę tabeli, kolumnę lub kolumny, które mają być indeksowane, oraz wszelkie dodatkowe opcje. Na przykład:
class AddIndexToUsersEmail < ActiveRecord::Migration[7.0]  def    change
    add_index :users, :email  endend
Metoda add_index może akceptować także dodatkowe opcje, takie jak nazwa indeksu i to, czy ma on być unikalny. Na przykład:
class AddIndexToUsersEmail < ActiveRecord::Migration[7.0]  def    change
    add_index :users, :email, name: "index_users_on_email", unique: true
  endendPo zdefiniowaniu migracji uruchamiamy ją za pomocą polecenia rails db:migrate. Spowoduje to wykonanie instrukcji migracji i zastosowanie zmian w schemacie bazy danych.
Należy pamiętać, że na produkcji raz przeprowadzonej migracji nie można cofnąć. Jeśli później zajdzie potrzeba wprowadzenia zmian w schemacie, konieczne będzie utworzenie nowej migracji, która umożliwi cofnięcia zmiany. Dlatego też dobrym pomysłem jest dokładne przetestowanie migracji przed uruchomieniem ich w środowisku produkcyjnym.
Podsumowując, migracje Railsowe są potężnym narzędziem do modyfikowania schematu bazy danych aplikacji. Metodę tę add_index można wykorzystać do dodania indeksów w celu poprawy wydajności zapytań, a migracje można uruchomić za pomocą polecenia rails db:migrate. Ważne jest jednak, aby dokładnie rozważyć wpływ migracji i dokładnie je przetestować przed uruchomieniem ich w środowisku produkcyjnym.