-- Estado documental: CURRENT como runbook correctivo para entornos legacy. -- Elimina columnas obsoletas de snapshot VeriFactu en `issued_invoices`. -- Refuerza el SSOT vigente: `IssuedInvoice` no debe persistir -- `verifactu_profile_status`, `uses_verifactu` ni `verifactu_effective_at`. -- Ejecutar solo en una BD de desarrollo segura o mediante procedimiento controlado. -- No ejecutar automaticamente en produccion. SET @target_schema = DATABASE(); -- Comprobacion previa recomendada. -- SELECT column_name, is_nullable, column_type -- FROM information_schema.columns -- WHERE table_schema = @target_schema -- AND table_name = 'issued_invoices' -- AND column_name IN ( -- 'verifactu_profile_status', -- 'uses_verifactu', -- 'verifactu_effective_at' -- ); SET @ddl = ( SELECT IF( EXISTS ( SELECT 1 FROM information_schema.columns WHERE table_schema = @target_schema AND table_name = 'issued_invoices' AND column_name = 'verifactu_effective_at' ), 'ALTER TABLE issued_invoices DROP COLUMN verifactu_effective_at', 'SELECT ''verifactu_effective_at already dropped''' ) ); PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @ddl = ( SELECT IF( EXISTS ( SELECT 1 FROM information_schema.columns WHERE table_schema = @target_schema AND table_name = 'issued_invoices' AND column_name = 'uses_verifactu' ), 'ALTER TABLE issued_invoices DROP COLUMN uses_verifactu', 'SELECT ''uses_verifactu already dropped''' ) ); PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @ddl = ( SELECT IF( EXISTS ( SELECT 1 FROM information_schema.columns WHERE table_schema = @target_schema AND table_name = 'issued_invoices' AND column_name = 'verifactu_profile_status' ), 'ALTER TABLE issued_invoices DROP COLUMN verifactu_profile_status', 'SELECT ''verifactu_profile_status already dropped''' ) ); PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- Validacion minima posterior a la DDL. -- SELECT column_name -- FROM information_schema.columns -- WHERE table_schema = DATABASE() -- AND table_name = 'issued_invoices' -- AND column_name IN ( -- 'verifactu_profile_status', -- 'uses_verifactu', -- 'verifactu_effective_at' -- );