
Geavanceerde migraties
Complexe migraties, reversible migrations, datamigraties, rollbacks, DB-constraints vs. validaties, safe migrations
1Wat is het verschil tussen de methoden change en up/down in een Rails-migratie?
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.
2Hoe maak je een migratie omkeerbaar wanneer Rails de omgekeerde bewerking niet automatisch kan afleiden?
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.
3Welk commando maakt het mogelijk om meerdere migraties in één bewerking terug te draaien?
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.
Waarom moet je het gebruik van ActiveRecord-modelreferenties in datamigraties vermijden?
Wat is de beste praktijk voor het uitvoeren van een datamigratie in productie op een grote tabel?
+17 gespreksvragen
Andere Ruby on Rails-sollicitatieonderwerpen
Ruby-basis
Objectgeoriënteerd programmeren in Ruby
Rails-grondbeginselen
Routing & Controllers
ActiveRecord-basis
Views & ERB-templates
ActiveRecord-associaties
Geavanceerde ActiveRecord-query's
Rails-formulieren
Authenticatie & autorisatie
Moderne Asset Pipeline & frontend
Rails API-modus
Testen met RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Cachingstrategieën
Rails Engines & modulaire apps
Prestatie-optimalisatie
Rails Design Patterns
Ruby-metaprogrammering
Rails-beveiliging
GraphQL met Rails
Deployment & Productie
Monitoring & Logging
Rails-upgradestrategieën
Beheers Ruby on Rails voor je volgende gesprek
Krijg toegang tot alle vragen, flashcards, technische tests, code review-oefeningen en gespreksimulatoren.
Begin gratis