Saltar al contenido
Explorar conocimiento

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