2026-08-26 11:03:39 +00:00
|
|
|
-- 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`.
|
2026-08-20 08:12:09 +00:00
|
|
|
-- 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'
|
|
|
|
|
-- );
|