Ruby on Rails

Geavanceerde migraties

Complexe migraties, reversible migrations, datamigraties, rollbacks, DB-constraints vs. validaties, safe migrations

20 gespreksvragen·
Mid-Level
1

Wat is het verschil tussen de methoden change en up/down in een Rails-migratie?

Antwoord

De change-methode is een vereenvoudigde syntaxis die in Rails 3.1 is geïntroduceerd en waarmee Rails de omgekeerde bewerking automatisch kan afleiden. Het werkt voor de meeste veelvoorkomende bewerkingen zoals add_column of create_table. De methoden up en down bieden expliciete controle over toepassings- en rollback-bewerkingen, wat noodzakelijk is wanneer Rails de omkering niet automatisch kan afleiden, zoals bij het verwijderen van gegevens of complexe transformaties.

2

Hoe maak je een migratie omkeerbaar wanneer Rails de omgekeerde bewerking niet automatisch kan afleiden?

Antwoord

Met het reversible-blok kun je up- en down-bewerkingen expliciet definiëren binnen een change-methode. Dit is bijzonder nuttig voor bewerkingen zoals remove_column, waarbij Rails het kolomtype en de opties moet kennen om de kolom tijdens een rollback opnieuw te maken. Het reversible-blok biedt de flexibiliteit van up/down terwijl de moderne change-syntaxis behouden blijft.

3

Welk commando maakt het mogelijk om meerdere migraties in één bewerking terug te draaien?

Antwoord

Het commando rails db:rollback STEP=n maakt het mogelijk om de laatste n uitgevoerde migraties terug te draaien. STEP=3 draait bijvoorbeeld de laatste drie migraties terug in omgekeerde volgorde van hun uitvoering. Zonder de optie STEP wordt alleen de laatste migratie teruggedraaid. Dit commando is handig om tijdens de ontwikkeling snel terug te keren naar een eerdere databasetoestand.

4

Waarom moet je het gebruik van ActiveRecord-modelreferenties in datamigraties vermijden?

5

Wat is de beste praktijk voor het uitvoeren van een datamigratie in productie op een grote tabel?

+17 gespreksvragen

Beheers Ruby on Rails voor je volgende gesprek

Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.

Begin gratis