Backend, APIs y datos · Avanzado

Migraciones de esquema sin tiempo de caída

En una línea: Cambia el esquema en pasos compatibles hacia atrás: añade, rellena, cambia, y solo al final: elimina.

El problema

Durante una publicación corren dos versiones de código juntas. Una migración que cambia una columna de golpe rompe una de ellas. Así que cada cambio estructural se descompone en una secuencia de pasos cada uno seguro por sí mismo.

La secuencia segura

Añadir. Una columna nueva, que admita vacío, sin tocar la existente.

Escritura doble. El código escribe en ambas columnas y prefiere leer de la vieja.

Rellenar. En lotes pequeños, fuera de horas punta, con posibilidad de parar.

Cambiar lecturas. Tras verificar que los datos son idénticos.

Eliminar. En una publicación aparte, tras confirmar que nadie lee.

Reglas de cautela

Una migración en una tabla grande puede bloquear. Comprueba el comportamiento de bloqueo en tu motor, y ejecútala sobre una copia del tamaño de producción. Una copia de seguridad antes, y un guion de reversión escrito de antemano, no improvisado bajo presión.

En profundidad

Gestiona las migraciones como código en control de versiones, con ejecución automática y control de orden. Y no mezcles un cambio de esquema con un cambio de lógica en la misma publicación: cuando algo se rompe, quieres saber cuál de los dos tiene la culpa.