Las migraciones de base de datos (cambios de esquema) son una de las partes más complicadas de CI/CD — a diferencia del código de aplicación sin estado, las bases de datos contienen estado que no puede simplemente reemplazarse o revertirse. Manejar las migraciones cuidadosamente (automatización, compatibilidad hacia atrás, patrones seguros) es esencial para despliegues confiables.
Por qué es importante
App code is stateless (replace it, roll back freely). DATABASES hold STATE:
→ can't just "roll back" a migration that dropped a column or transformed data
(the data may be gone) → rollbacks are risky/impossible for destructive changes
→ during deployment, OLD and NEW app code may run SIMULTANEOUSLY (rolling deploy) —
both must work with the database schema at that moment
→ Schema changes need careful coordination with code deployment.
