Ruby on Rails

Migrations avancées

Complex migrations, reversible migrations, data migrations, rollbacks, DB constraints vs validations, safe migrations

20 questions d'entretien·
Confirmé
1

Quelle est la différence entre les méthodes change et up/down dans une migration Rails ?

Réponse

La méthode change est une syntaxe simplifiée introduite dans Rails 3.1 qui permet à Rails de déduire automatiquement l'opération inverse. Elle fonctionne pour la plupart des opérations courantes comme add_column ou create_table. Les méthodes up et down offrent un contrôle explicite sur les opérations d'application et de rollback, ce qui est nécessaire quand Rails ne peut pas déduire l'inverse automatiquement, par exemple lors de suppressions de données ou de transformations complexes.

2

Comment rendre une migration réversible lorsque Rails ne peut pas déduire automatiquement l'opération inverse ?

Réponse

Le bloc reversible permet de définir explicitement les opérations up et down au sein d'une méthode change. Cela est particulièrement utile pour les opérations comme remove_column où Rails a besoin de connaître le type et les options de la colonne pour la recréer lors d'un rollback. Le bloc reversible offre la flexibilité de up/down tout en gardant la syntaxe moderne de change.

3

Quelle commande permet d'annuler plusieurs migrations en une seule opération ?

Réponse

La commande rails db:rollback STEP=n permet d'annuler les n dernières migrations exécutées. Par exemple, STEP=3 annulera les trois dernières migrations dans l'ordre inverse de leur exécution. Sans l'option STEP, seule la dernière migration est annulée. Cette commande est utile pour revenir rapidement à un état antérieur de la base de données pendant le développement.

4

Pourquoi éviter d'utiliser des références au modèle ActiveRecord dans les migrations de données ?

5

Quelle est la meilleure pratique pour effectuer une migration de données en production sur une table volumineuse ?

+17 questions d'entretien

Maîtrise Ruby on Rails pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement