# SQL Customer Invoices ## Fase 1D Archivos de esta fase: - `dev-split-proformas-issued-invoices.sql` - `validate-split-proformas-issued-invoices.sql` ## Orden recomendado en desarrollo 1. Verificar que la BD objetivo es inequívocamente de desarrollo. 2. Hacer backup o confirmar que los datos son descartables. 3. Ejecutar `dev-split-proformas-issued-invoices.sql`. 4. Ejecutar `validate-split-proformas-issued-invoices.sql`. 5. Levantar backend V2 y validar flujos funcionales. ## Propiedades del script de desarrollo - Crea tablas con `CREATE TABLE IF NOT EXISTS`. - Añade `verifactu_records.issued_invoice_id` con `ALTER TABLE ... ADD COLUMN IF NOT EXISTS`. - Conserva UUIDs legacy. - No borra ni modifica datos legacy. - Usa `NOT EXISTS` para evitar duplicados en reejecuciones. - No usa `INSERT IGNORE`. ## Cuándo no ejecutar No ejecutar si: - no existe una configuración de desarrollo clara - hay duda sobre si la BD es producción - no existe backup verificable - el entorno no tiene aún las credenciales/localización confirmadas ## Procedimiento preliminar de producción No ejecutar todavía. Referencia operativa: 1. Backup verificado. 2. Ventana de mantenimiento. 3. Bloquear escrituras del backend. 4. Ejecutar create tables / columnas transicionales. 5. Ejecutar backfill idempotente y conservador. 6. Ejecutar validaciones SQL. 7. Desplegar backend con wiring V2. 8. Monitorizar errores y métricas. 9. Mantener legacy congelado para rollback y auditoría. 10. Ejecutar rollback según punto de corte si alguna validación falla.