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
| Regla | Por qué | Ejemplo |
|---|---|---|
| Nunca destructiva en un solo paso | todo lo que borra no vuelve; todo lo que renombra rompe dependencias ocultas | primero AÑADIR lo nuevo y poblarlo; después migrar lecturas; SOLO AL FINAL quitar lo viejo |
| Cada migración reversible o congelada | si no puedes volver, necesitas un punto de no retorno consciente | backup justo antes + step de reversa en el propio script |
| Ceros no se borran: se jubilan | una 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
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:
- Agrego columna iva (decimal, default 0) y la lleno con una regla explícita.
- Sobre la base de producción directamente, elimino la columna total antigua y la recalculo con el IVA incluido.
- Muestreo 10 facturas al azar y te muestro total viejo vs nuevo antes de continuar.
- 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.