Ruby on Rails

Fortgeschrittene Migrationen

Komplexe Migrationen, reversible migrations, Datenmigrationen, rollbacks, DB-Constraints vs. Validierungen, safe migrations

20 Interview-Fragen·
Mid-Level
1

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.

2

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.

3

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.

4

Warum sollte man die Verwendung von ActiveRecord-Modellreferenzen in Datenmigrationen vermeiden?

5

Was ist die beste Vorgehensweise, um eine Datenmigration in Produktion auf einer großen Tabelle durchzuführen?

+17 Interview-Fragen

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