
Zaawansowane migracje
Złożone migracje, reversible migrations, migracje danych, rollbacks, ograniczenia DB a walidacje, safe migrations
1Jaka jest różnica między metodami change i up/down w migracji Rails?
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.
2Jak uczynić migrację odwracalną, gdy Rails nie potrafi automatycznie wywnioskować operacji odwrotnej?
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.
3Które polecenie pozwala wycofać wiele migracji w jednej operacji?
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.
Dlaczego należy unikać używania odwołań do modelu ActiveRecord w migracjach danych?
Jaka jest najlepsza praktyka przy wykonywaniu migracji danych w środowisku produkcyjnym na dużej tabeli?
+17 pytań z rozmów
Inne tematy rekrutacyjne Ruby on Rails
Podstawy Ruby
Programowanie obiektowe w Ruby
Podstawy Rails
Routing & Controllers
Podstawy ActiveRecord
Widoki i szablony ERB
Asocjacje ActiveRecord
Zaawansowane zapytania ActiveRecord
Formularze Rails
Uwierzytelnianie i autoryzacja
Nowoczesny Asset Pipeline i frontend
Tryb API Rails
Testowanie z RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Strategie cachowania
Rails Engines i aplikacje modułowe
Optymalizacja wydajności
Wzorce projektowe w Rails
Metaprogramowanie w Ruby
Bezpieczeństwo Rails
GraphQL z Rails
Wdrażanie i Produkcja
Monitoring & Logging
Strategie aktualizacji Rails
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