
Migraciones avanzadas
Migraciones complejas, reversible migrations, migraciones de datos, rollbacks, restricciones de DB vs validaciones, safe migrations
1¿Cuál es la diferencia entre los métodos change y up/down en una migración de Rails?
¿Cuál es la diferencia entre los métodos change y up/down en una migración de Rails?
Respuesta
El método change es una sintaxis simplificada introducida en Rails 3.1 que permite a Rails inferir automáticamente la operación inversa. Funciona para la mayoría de operaciones comunes como add_column o create_table. Los métodos up y down ofrecen un control explícito sobre las operaciones de aplicación y rollback, lo cual es necesario cuando Rails no puede inferir automáticamente la inversa, como durante eliminaciones de datos o transformaciones complejas.
2¿Cómo hacer que una migración sea reversible cuando Rails no puede inferir automáticamente la operación inversa?
¿Cómo hacer que una migración sea reversible cuando Rails no puede inferir automáticamente la operación inversa?
Respuesta
El bloque reversible permite definir explícitamente las operaciones up y down dentro de un método change. Esto es particularmente útil para operaciones como remove_column donde Rails necesita conocer el tipo y las opciones de la columna para recrearla durante un rollback. El bloque reversible ofrece la flexibilidad de up/down manteniendo la sintaxis moderna de change.
3¿Qué comando permite revertir varias migraciones en una sola operación?
¿Qué comando permite revertir varias migraciones en una sola operación?
Respuesta
El comando rails db:rollback STEP=n permite revertir las últimas n migraciones ejecutadas. Por ejemplo, STEP=3 revertirá las tres últimas migraciones en orden inverso a su ejecución. Sin la opción STEP, solo se revierte la última migración. Este comando es útil para volver rápidamente a un estado anterior de la base de datos durante el desarrollo.
¿Por qué evitar el uso de referencias al modelo ActiveRecord en las migraciones de datos?
¿Cuál es la mejor práctica para realizar una migración de datos en producción sobre una tabla grande?
+17 preguntas de entrevista
Otros temas de entrevista Ruby on Rails
Fundamentos de Ruby
Programación orientada a objetos en Ruby
Fundamentos de Rails
Routing & Controllers
Fundamentos de ActiveRecord
Views y plantillas ERB
Asociaciones de ActiveRecord
Consultas avanzadas de ActiveRecord
Formularios Rails
Autenticación y Autorización
Asset Pipeline moderno y frontend
Modo API de Rails
Pruebas con RSpec
ActiveJob & Background Jobs
ActionCable & WebSockets
ActionMailer
ActiveStorage
Estrategias de caching
Rails Engines y apps modulares
Optimización del rendimiento
Patrones de diseño en Rails
Metaprogramación en Ruby
Seguridad en Rails
GraphQL con Rails
Despliegue y Producción
Monitoring & Logging
Estrategias de actualización de Rails
Domina Ruby on Rails para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis