concepto · intermedio · 2 min de lectura
Migraciones de Base de Datos
Las migraciones son scripts versionados que modifican el esquema de la base de datos de forma incremental, permitiendo evolucionar la estructura sin perder datos ni romper la aplicación.
No requiere conocimientos previos.
Alcance en breve
Cubre
- Migraciones de Base de Datos as a concept
No cubre
- implementation details
Supone
- The reader understands relevant fundamentals.
Resumen
Una migración es un cambio en el esquema de la base de datos aplicado mediante un script versionado. Agregar una columna, crear un índice, renombrar una tabla —todo se hace con migraciones, no a mano en producción—. Las migraciones son parte del código fuente y se aplican de manera reproducible en desarrollo, staging y producción.
Sin migraciones, los cambios de esquema se aplican manualmente en cada entorno, lo que inevitablemente genera divergencias: «en staging funciona, en prod falta una columna». Con migraciones, cada cambio está documentado, es reversible —rollback— y se aplica automáticamente durante el deploy.
Alcance y supuestos
Cubre el concepto de migraciones, herramientas (Flyway, Liquibase, Alembic, Prisma Migrate) y prácticas. Asume familiaridad con bases de datos.
Modelo mental
Los planos de reforma de un edificio. Cada reforma —agregar una ventana, tirar una pared— está documentada en un plano nuevo, fechado y numerado. Si hay que volver atrás, sabés exactamente qué se modificó y cuándo. Las migraciones son los planos de reforma de tu base de datos.
Uso práctico
- ✅ Todo proyecto con base de datos que evoluciona.
- ❌ Nunca modificar esquemas a mano en producción.
Ejemplo trabajado: migración con Prisma
ALTER TABLE users ADD COLUMN phone VARCHAR(20);
La migración se versiona, se commitea al repo, y el pipeline de CI/CD la aplica automáticamente. Si falla, se hace rollback.
Evidencia
- Flyway (Java), Liquibase, Alembic (Python) y Prisma Migrate (Node.js) son las herramientas principales.
Fuentes citadas
- Wikipedia, Database index (Síntesis, 21-07-2026)