Desarrollador Backend: pregunta de entrevista
¿Cómo despliegas migraciones de base de datos de forma segura?
Despliega migraciones en pasos compatibles: añade primero, publica código que maneje ambas formas, rellena datos de forma segura, cambia lecturas y elimina campos obsoletos después. Mantén locks y transacciones cortos.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
Una migración segura nunca exige que el esquema y el código cambien en el mismo instante. Cada paso debe funcionar con la versión anterior y la siguiente de la aplicación: expandir el esquema, desplegar código que escribe ambas formas, rellenar por lotes pequeños que no retengan locks largos, cambiar las lecturas y solo entonces contraer eliminando lo que no se usa. Cada paso tiene su propio despliegue y su propio rollback, y las operaciones que reescriben una tabla completa o toman un lock exclusivo se contrastan con el comportamiento del motor antes de ejecutarse en producción.
Ejemplo
Añade una columna nullable, despliega writers, rellena por lotes y hazla obligatoria solo cuando toda versión activa pueda leerla. Renombrar una columna se convierte en añadir la nueva, escribir en ambas, rellenar, cambiar lecturas, dejar de escribir la vieja y eliminarla, repartido en varias releases en vez de un ALTER que rompe los pods en ejecución.
Errores frecuentes
- Ejecutar un NOT NULL o un cambio de tipo sobre una tabla grande en una sola sentencia y bloquearla minutos.
- Acoplar la migración al despliegue, de modo que un rollback del código deja el esquema por delante.
- Rellenar con un único UPDATE que infla la tabla e inunda la replicación.
Una estructura útil para responder
Responde desde tu propia experiencia.
No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.
Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.