Desarrollo de Software con IA

Migraciones sin perder datos: cambiar la base en producción

Planear una migración con respaldo previo, prueba en copia y aplicación controlada.

El esquema también envejece

Tu app creció: el contacto ahora es empresa + personas, el precio necesita IVA discriminado, la foto vive en otra parte. Cambiar la estructura de datos de una base que ya tiene vida es una migración: el momento de mayor riesgo de todo el ciclo de vida. Y no se ataca con valentía: se ataca con protocolo.

[El ritual de cinco actos]

Esta actividad interactiva ('Explicacion visual') requiere el motor completo de Lumbre. El contenido estatico se muestra arriba; para la experiencia interactiva, visita la version online de este objeto.

Las tres reglas que evitan el desastre

Nota la filosofía: se migra por acumulación (añadir → poblar → cambiar lecturas → jubilar), no por sustitución brusca.
ReglaPor quéEjemplo
Nunca destructiva en un solo pasotodo lo que borra no vuelve; todo lo que renombra rompe dependencias ocultasprimero AÑADIR lo nuevo y poblarlo; después migrar lecturas; SOLO AL FINAL quitar lo viejo
Cada migración reversible o congeladasi no puedes volver, necesitas un punto de no retorno conscientebackup justo antes + step de reversa en el propio script
Ceros no se borran: se jubilanuna columna puede tener lectores que olvidaste (reportes, APIs, scripts)un periodo de doble escritura y limpieza en una segunda migración

Dirige el ritual con prompt

La orden es el protocolo, la autorización es tuya
Necesito agregar a "contactos" el campo empresa (nueva tabla empresas con sus relaciones) SIN perder datos.\n\nPlan de migracion en pasos independientes, cada uno con su verificacion y su reversa:\n1. RESPALDO: script de copia de la base de hoy + restauracion de prueba en base temporal. Muestrame ambas.\n2. ANADIR: crear tabla empresas y columna contacto.empresa_id (permite null). NO tocar datos existentes.\n3. POBLAR: script que detecta patrones de empresa en la nota actual y crea las empresas + vincula. Reporte\n   de cuantos quedaron sin vincular (esos se revisan a mano, NO se inventa).\n4. CAMBIAR LECTURAS: la app empieza a mostrar empresa desde la nueva tabla, manteniendo la nota intacta.\n5. VERIFICAR con datos reales: conteos antes/despues, muestreo de 10 registros, suite de pruebas verde.\n\nLas columnas viejas NO se borran en esta migracion: se jubilan en una segunda cuando confirmemos\nque nada las lee. Antes de ejecutar cada paso contra datos reales, ensayalo en la copia.\nDetente y muéstrame resultados en cada paso: yo autorizo el siguiente.

Prueba

Vas a dividir la tabla contacto en contacto + empresa. Según la regla anti-desastre, ¿qué orden es la correcta?

Hacer la copia de seguridad es opcional si la migración se ensayó antes en una copia.

Detecta la migración suicida

La IA propone este plan para "agregar IVA a las facturas". Señala la línea letal:

  1. Agrego columna iva (decimal, default 0) y la lleno con una regla explícita.
  2. Sobre la base de producción directamente, elimino la columna total antigua y la recalculo con el IVA incluido.
  3. Muestreo 10 facturas al azar y te muestro total viejo vs nuevo antes de continuar.
  4. Dejo la columna vieja intacta una semana como referencia y la quito en la segunda migración.

Identifica la linea con error.

¿Tu proyecto tiene una migración pendiente (un campo que se quedó corto, una tabla que pide separarse)? Escríbela con las cinco fases del ritual antes de pedirla, e inclúyela como anexo de tu documento maestro.

PistaEn la base de datos, el coraje se mide en copias de seguridad, no en velocidad.