Ruby on Rails

Zaawansowane migracje

Złożone migracje, reversible migrations, migracje danych, rollbacks, ograniczenia DB a walidacje, safe migrations

20 pytań z rozmów·
Mid-Level
1

Jaka jest różnica między metodami change i up/down w migracji Rails?

Odpowiedź

Metoda change to uproszczona składnia wprowadzona w Rails 3.1, która pozwala Rails automatycznie wywnioskować operację odwrotną. Działa dla większości typowych operacji, takich jak add_column czy create_table. Metody up i down zapewniają jawną kontrolę nad operacjami stosowania i rollback, co jest konieczne, gdy Rails nie potrafi automatycznie wywnioskować odwrotności, na przykład podczas usuwania danych lub złożonych transformacji.

2

Jak uczynić migrację odwracalną, gdy Rails nie potrafi automatycznie wywnioskować operacji odwrotnej?

Odpowiedź

Blok reversible pozwala jawnie zdefiniować operacje up i down wewnątrz metody change. Jest to szczególnie przydatne w przypadku operacji takich jak remove_column, gdzie Rails musi znać typ i opcje kolumny, aby odtworzyć ją podczas rollback. Blok reversible oferuje elastyczność up/down, zachowując jednocześnie nowoczesną składnię change.

3

Które polecenie pozwala wycofać wiele migracji w jednej operacji?

Odpowiedź

Polecenie rails db:rollback STEP=n pozwala wycofać ostatnie n wykonanych migracji. Na przykład STEP=3 wycofa trzy ostatnie migracje w odwrotnej kolejności ich wykonania. Bez opcji STEP wycofywana jest tylko ostatnia migracja. To polecenie jest przydatne do szybkiego powrotu do wcześniejszego stanu bazy danych podczas programowania.

4

Dlaczego należy unikać używania odwołań do modelu ActiveRecord w migracjach danych?

5

Jaka jest najlepsza praktyka przy wykonywaniu migracji danych w środowisku produkcyjnym na dużej tabeli?

+17 pytań z rozmów

Opanuj Ruby on Rails na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo