# Zaawansowane migracje (Ruby on Rails) > Złożone migracje, reversible migrations, migracje danych, rollbacks, ograniczenia DB a walidacje, safe migrations - 20 pytań z rozmów - Mid-Level - [Pytania z rozmów: Ruby on Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne.md) ## 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. ## Jeszcze 17 dostępnych pytań - 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? Zarejestruj się za darmo: https://sharpskill.dev/pl/login ## Inne tematy rekrutacyjne Ruby on Rails - [Podstawy Ruby](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/ruby-basics.md): 25 pytań, Junior - [Programowanie obiektowe w Ruby](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/ruby-oop.md): 20 pytań, Junior - [Podstawy Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-fundamentals.md): 18 pytań, Junior - [Routing & Controllers](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/routing-controllers.md): 22 pytań, Junior - [Podstawy ActiveRecord](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/active-record-basics.md): 25 pytań, Junior - [Widoki i szablony ERB](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/views-erb-templates.md): 20 pytań, Junior - [Asocjacje ActiveRecord](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/active-record-associations.md): 24 pytań, Mid-Level - [Zaawansowane zapytania ActiveRecord](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/active-record-queries.md): 28 pytań, Mid-Level - [Formularze Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-forms.md): 20 pytań, Mid-Level - [Uwierzytelnianie i autoryzacja](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/authentication-authorization.md): 22 pytań, Mid-Level - [Nowoczesny Asset Pipeline i frontend](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-asset-pipeline.md): 18 pytań, Mid-Level - [Tryb API Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-api-mode.md): 20 pytań, Mid-Level - [Testowanie z RSpec](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-testing-rspec.md): 24 pytań, Mid-Level - [ActiveJob & Background Jobs](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/active-job-background-jobs.md): 20 pytań, Mid-Level - [ActionCable & WebSockets](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/action-cable-websockets.md): 18 pytań, Mid-Level - [ActionMailer](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/action-mailer.md): 18 pytań, Mid-Level - [ActiveStorage](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/active-storage.md): 20 pytań, Mid-Level - [Strategie cachowania](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/caching-strategies.md): 20 pytań, Mid-Level - [Rails Engines i aplikacje modułowe](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-engines-modular-apps.md): 18 pytań, Senior - [Optymalizacja wydajności](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/performance-optimization.md): 26 pytań, Senior - [Wzorce projektowe w Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-design-patterns.md): 22 pytań, Senior - [Metaprogramowanie w Ruby](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/ruby-metaprogramming.md): 20 pytań, Senior - [Bezpieczeństwo Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-security.md): 22 pytań, Senior - [GraphQL z Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/graphql-rails.md): 20 pytań, Senior - [Wdrażanie i Produkcja](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-deployment-production.md): 20 pytań, Senior - [Monitoring & Logging](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/monitoring-logging.md): 20 pytań, Senior - [Strategie aktualizacji Rails](https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/rails-upgrade-strategies.md): 18 pytań, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/pl/technologies/ruby-on-rails/pytania-rekrutacyjne/database-migrations-advanced