-- Estado documental: SUPERSEDED / solo auditoria legacy. -- Este script responde a una propuesta antigua que reintroducia -- `verifactu_profile_status`, `uses_verifactu` y `verifactu_effective_at` -- en `issued_invoices`. -- No es SSOT vigente y no debe ejecutarse como camino normal en entornos nuevos. -- Ejecutar solo para auditar drift historico o comparar esquemas legacy. SET @target_schema = DATABASE(); SET @ddl = ( SELECT IF( EXISTS ( SELECT 1 FROM information_schema.columns WHERE table_schema = @target_schema AND table_name = 'issued_invoices' AND column_name = 'operation_qualification_code' ), 'SELECT ''operation_qualification_code already exists''', 'ALTER TABLE issued_invoices ADD COLUMN operation_qualification_code VARCHAR(64) NULL AFTER tax_regime_description' ) ); 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 = 'exemption_reason_code' ), 'SELECT ''exemption_reason_code already exists''', 'ALTER TABLE issued_invoices ADD COLUMN exemption_reason_code VARCHAR(64) NULL AFTER operation_qualification_code' ) ); 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' ), 'SELECT ''verifactu_profile_status already exists''', 'ALTER TABLE issued_invoices ADD COLUMN verifactu_profile_status VARCHAR(64) NULL AFTER exemption_reason_code' ) ); 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' ), 'SELECT ''uses_verifactu already exists''', 'ALTER TABLE issued_invoices ADD COLUMN uses_verifactu TINYINT(1) NULL AFTER verifactu_profile_status' ) ); 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_effective_at' ), 'SELECT ''verifactu_effective_at already exists''', 'ALTER TABLE issued_invoices ADD COLUMN verifactu_effective_at DATETIME NULL AFTER uses_verifactu' ) ); 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 ( -- 'operation_qualification_code', -- 'exemption_reason_code', -- 'verifactu_profile_status', -- 'uses_verifactu', -- 'verifactu_effective_at' -- );