
Fortgeschrittene Migrationen
Komplexe Migrationen, reversible migrations, Datenmigrationen, rollbacks, DB-Constraints vs. Validierungen, safe migrations
1Was ist der Unterschied zwischen den Methoden change und up/down in einer Rails-Migration?
Was ist der Unterschied zwischen den Methoden change und up/down in einer Rails-Migration?
Antwort
Die change-Methode ist eine vereinfachte Syntax, die in Rails 3.1 eingeführt wurde und es Rails ermöglicht, die umgekehrte Operation automatisch abzuleiten. Sie funktioniert für die meisten gängigen Operationen wie add_column oder create_table. Die Methoden up und down bieten explizite Kontrolle über Anwendungs- und rollback-Operationen, was notwendig ist, wenn Rails die Umkehrung nicht automatisch ableiten kann, etwa bei Datenlöschungen oder komplexen Transformationen.
2Wie macht man eine Migration reversibel, wenn Rails die umgekehrte Operation nicht automatisch ableiten kann?
Wie macht man eine Migration reversibel, wenn Rails die umgekehrte Operation nicht automatisch ableiten kann?
Antwort
Der reversible-Block ermöglicht es, up- und down-Operationen explizit innerhalb einer change-Methode zu definieren. Dies ist besonders nützlich für Operationen wie remove_column, bei denen Rails den Spaltentyp und die Optionen kennen muss, um die Spalte beim rollback neu zu erstellen. Der reversible-Block bietet die Flexibilität von up/down und behält gleichzeitig die moderne change-Syntax bei.
3Welcher Befehl ermöglicht es, mehrere Migrationen in einer einzigen Operation zurückzurollen?
Welcher Befehl ermöglicht es, mehrere Migrationen in einer einzigen Operation zurückzurollen?
Antwort
Der Befehl rails db:rollback STEP=n ermöglicht es, die letzten n ausgeführten Migrationen zurückzurollen. Zum Beispiel rollt STEP=3 die letzten drei Migrationen in umgekehrter Reihenfolge ihrer Ausführung zurück. Ohne die Option STEP wird nur die letzte Migration zurückgerollt. Dieser Befehl ist nützlich, um während der Entwicklung schnell zu einem früheren Datenbankzustand zurückzukehren.
Warum sollte man die Verwendung von ActiveRecord-Modellreferenzen in Datenmigrationen vermeiden?
Was ist die beste Vorgehensweise, um eine Datenmigration in Produktion auf einer großen Tabelle durchzuführen?
+17 Interview-Fragen
Weitere Ruby on Rails-Interviewthemen
Ruby-Grundlagen
Objektorientierte Programmierung in Ruby
Rails-Grundlagen
Routing & Controllers
ActiveRecord-Grundlagen
Views & ERB-Templates
ActiveRecord-Assoziationen
Fortgeschrittene ActiveRecord-Abfragen
Rails-Formulare
Authentifizierung & Autorisierung
Moderne Asset Pipeline & Frontend
Rails API-Modus
Testen mit RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Caching-Strategien
Rails Engines & modulare Apps
Performance-Optimierung
Rails Design Patterns
Ruby-Metaprogrammierung
Rails-Sicherheit
GraphQL mit Rails
Deployment & Produktion
Monitoring & Logging
Rails-Upgrade-Strategien
Meistere Ruby on Rails für dein nächstes Interview
Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.
Kostenlos starten