GuíaAvanzado
Guía de Migraciones y CI/CD de Base de Datos
Aprende a cambiar el esquema y los datos de una base de datos en producción sin romperla: la migración como un cambio versionado, ordenado, repetible y reversible. Cubre `ALTER TABLE` y el patrón de reconstrucción de tabla, migraciones de datos con backfills, el patrón expand/contract para cero downtime, y el CI/CD de la base de datos —aplicar migraciones, correr chequeos de calidad y tests en un pipeline, con quality gates y rollback. Evolucionas la base de datos de Reservo con una serie real de migraciones y sales sabiendo construir y operar un sistema de migraciones de producción.
- 64
- lecciones
- 8
- módulos
- Inglés · Español
- disponible en
- Sí
- certificado
- Gratis
- acceso
Resultados
Lo que vas a poder hacer
- Entender por qué existen las migraciones: el schema drift entre entornos, y por qué un ALTER a mano no es versionado ni reversible ni auditable
- Diseñar la anatomía de una migración: up y down, el archivo versionado, la tabla `schema_migrations` y un runner idempotente que aplica solo lo pendiente
- Escribir migraciones de esquema con ALTER TABLE: agregar columnas, tablas e índices, y el patrón de reconstrucción de tabla que exigen las limitaciones de sqlite
- Migrar datos existentes con backfills idempotentes y por lotes, y decidir cuándo separar una migración de esquema de una de datos
- Aplicar el patrón expand/contract para migraciones sin downtime, probar sobre una copia antes de producción y mitigar lo irreversible
- Correr migraciones en CI: aplicarlas desde cero y de forma incremental, y detectar drift de esquema antes de mergear
- Construir el pipeline de CI/CD de la base de datos: quality gates, rollback ante fallo y configuración por entorno (dev, staging, prod)
- Entregar el sistema de migraciones completo de Reservo: migraciones ordenadas, un runner en Python y un pipeline de CI en YAML
Antes de empezar
Qué necesitas traer
Es para ti si...
- Backend devs que cambian el esquema de una base de datos viva y necesitan hacerlo sin romper producción
- Equipos que sufren schema drift entre entornos por ALTERs manuales sin versionar
- Quien va a configurar o mantener un pipeline de CI/CD que incluya la base de datos
- Devs que quieren entender qué hacen por debajo herramientas como Alembic, Flyway o Liquibase
Requisitos y materiales
- SQL básico: CREATE TABLE, ALTER TABLE, INSERT
- Python 3 instalado (el módulo `sqlite3` viene en la librería estándar)
- Nociones generales de qué es un pipeline de CI/CD; no se requiere experiencia previa configurando uno
Contenido
El temario, módulo por módulo
Abre cualquiera para ver sus lecciones.
- Introducción al Módulo 1: Por qué migraciones y cambio de esquema
- Una base de datos viva no se recrea de cero
- El schema drift entre entornos
- Las cuatro fallas del `ALTER` a mano
- Qué es una migración y "esquema como código"
- El runner mínimo que aplica un `.sql`
- Versionar las migraciones en el repo: `0001_init.sql`
- Mini-proyecto: tu primera migración
- Módulo 2 — Anatomía de una migración: up/down y versionado
- La anatomía de un archivo de migración y su nombre-versión
- El par up/down y el rollback
- Por qué el orden y el versionado deben ser deterministas
- La tabla de control `schema_migrations`
- El runner idempotente que aplica solo lo pendiente
- `PRAGMA user_version`: la alternativa nativa de sqlite
- Mini-proyecto: construye el runner de migraciones
- Módulo 4 — Migraciones de datos y backfills
- Migración de esquema vs. migración de datos
- El backfill de una columna nueva: `duration_min` con `julianday`
- Dividir un campo: `name` → `first_name` / `last_name`
- Corregir un dato legado en una migración
- El backfill idempotente
- El backfill por lotes para tablas grandes
- Mini-proyecto: el backfill de una columna nueva en Reservo
- Introducción al Módulo 5: Migraciones seguras y expand/contract
- Por qué una migración destructiva rompe el código en vuelo
- El patrón expand/contract y sus cuatro fases
- El caso: dividir `name` sin downtime por fases
- Reversibilidad y el `down` de cada fase (y por qué contract es el difícil)
- Probar la migración sobre una copia del backup antes de prod
- La migración irreversible y cómo mitigarla
- Mini-proyecto: un split de columna sin downtime
- Módulo 6 — Migraciones en CI
- Por qué CI para migraciones: el PR con una migración
- El test "migran limpio desde cero"
- El test incremental: aplicar solo la migración nueva
- El drift check: "up desde vacío == esquema esperado"
- Cazar una migración rota: el test que falla y el exit code
- El YAML de GitHub Actions, step por step
- Mini-proyecto: un CI check para las migraciones de Reservo
- Módulo 7 — El pipeline CI/CD y los quality gates
- Qué es un quality gate y por qué la base de datos necesita uno
- Reusar los chequeos de calidad como gate: violaciones > 0 ⇒ falla
- El gate en verde y en rojo: una migración con bug cazada
- El pipeline por fases como YAML de GitHub Actions
- Rollback vs fix-forward: qué hacer cuando el gate cierra la puerta
- Los entornos dev/staging/prod, la config y los secretos
- Mini-proyecto: un pipeline con quality gate para Reservo
- Módulo 8 — Capstone: el sistema de migraciones de Reservo
- El set de migraciones ordenado, de vacío al esquema actual
- Las migraciones de feature: `notes` y `waitlist`
- El backfill de `duration_min`: una migración de esquema + datos
- El rebuild con constraint, aplicando expand/contract
- El runner y el quality gate, integrados
- El pipeline `deploy.yml` que orquesta todo
- Proyecto final: el sistema de migraciones de Reservo
Dudas frecuentes
Lo que suele preguntarse
Sin límite. Es una guía gratuita: entras cuando quieras, las veces que quieras.
No. Los módulos están ordenados de menos a más, pero puedes saltar al que necesites. Tu progreso se guarda por lección.
Lo que haga falta está en «Qué necesitas traer», arriba. Si no aparece nada ahí, puedes empezar desde cero.
En el grupo de WhatsApp del Club, y cada quince días hay un live con un instructor donde se resuelven dudas en vivo.
Sí. Al terminar todas las lecciones se emite automáticamente, con un código verificable que puedes compartir en LinkedIn.
Empieza cuando quieras
Lo que dicen los estudiantes
Estas reseñas son de estudiantes inscritos que completaron al menos el 50% del curso. Moderamos las reseñas solo por motivos de contenido (spam, lenguaje ofensivo, datos personales), nunca por ser críticas o negativas.
Aún no hay reseñas aprobadas.
¡Sé el primero en compartir tu experiencia!