Ruby on Rails

Migrazioni avanzate

Migrazioni complesse, reversible migrations, migrazioni di dati, rollbacks, vincoli DB vs validazioni, safe migrations

20 domande da colloquio·
Mid-Level
1

Qual è la differenza tra i metodi change e up/down in una migrazione Rails?

Risposta

Il metodo change è una sintassi semplificata introdotta in Rails 3.1 che consente a Rails di dedurre automaticamente l'operazione inversa. Funziona per la maggior parte delle operazioni comuni come add_column o create_table. I metodi up e down offrono un controllo esplicito sulle operazioni di applicazione e rollback, necessario quando Rails non può dedurre automaticamente l'inversa, ad esempio durante eliminazioni di dati o trasformazioni complesse.

2

Come rendere una migrazione reversibile quando Rails non può dedurre automaticamente l'operazione inversa?

Risposta

Il blocco reversible consente di definire esplicitamente le operazioni up e down all'interno di un metodo change. Questo è particolarmente utile per operazioni come remove_column in cui Rails deve conoscere il tipo e le opzioni della colonna per ricrearla durante un rollback. Il blocco reversible offre la flessibilità di up/down mantenendo la sintassi moderna di change.

3

Quale comando consente di eseguire il rollback di più migrazioni in una singola operazione?

Risposta

Il comando rails db:rollback STEP=n consente di eseguire il rollback delle ultime n migrazioni eseguite. Ad esempio, STEP=3 eseguirà il rollback delle ultime tre migrazioni nell'ordine inverso rispetto alla loro esecuzione. Senza l'opzione STEP, viene eseguito il rollback solo dell'ultima migrazione. Questo comando è utile per tornare rapidamente a uno stato precedente del database durante lo sviluppo.

4

Perché evitare l'uso di riferimenti al modello ActiveRecord nelle migrazioni di dati?

5

Qual è la migliore pratica per eseguire una migrazione di dati in produzione su una tabella di grandi dimensioni?

+17 domande da colloquio

Padroneggia Ruby on Rails per il tuo prossimo colloquio

Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.

Inizia gratis