
Migrazioni avanzate
Migrazioni complesse, reversible migrations, migrazioni di dati, rollbacks, vincoli DB vs validazioni, safe migrations
1Qual è la differenza tra i metodi change e up/down in una migrazione Rails?
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.
2Come rendere una migrazione reversibile quando Rails non può dedurre automaticamente l'operazione inversa?
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.
3Quale comando consente di eseguire il rollback di più migrazioni in una singola operazione?
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.
Perché evitare l'uso di riferimenti al modello ActiveRecord nelle migrazioni di dati?
Qual è la migliore pratica per eseguire una migrazione di dati in produzione su una tabella di grandi dimensioni?
+17 domande da colloquio
Altri argomenti di colloquio Ruby on Rails
Fondamenti di Ruby
Programmazione orientata agli oggetti in Ruby
Fondamenti di Rails
Routing & Controllers
Fondamenti di ActiveRecord
Views e template ERB
Associazioni ActiveRecord
Query ActiveRecord avanzate
Form Rails
Autenticazione e autorizzazione
Asset Pipeline moderno e frontend
Modalità API di Rails
Test con RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Strategie di caching
Rails Engines e app modulari
Ottimizzazione delle prestazioni
Design Pattern in Rails
Metaprogrammazione in Ruby
Sicurezza in Rails
GraphQL con Rails
Deployment e Produzione
Monitoring & Logging
Strategie di upgrade di Rails
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