From 7d21d21200858755659584d0c7a39842371070d5 Mon Sep 17 00:00:00 2001 From: consultoria-as Date: Sun, 14 Jun 2026 10:05:13 +0000 Subject: [PATCH] fix(migrations): make v4.3 idempotent and register all missing migrations - Use DO block to rename xml_unsigned only if it exists - Register all missing migrations in runner.py including v4.3 --- pos/migrations/runner.py | 8 ++++++++ pos/migrations/v4.3_facturapi.sql | 10 +++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/pos/migrations/runner.py b/pos/migrations/runner.py index 6cff34b..9503593 100755 --- a/pos/migrations/runner.py +++ b/pos/migrations/runner.py @@ -14,9 +14,11 @@ MIGRATIONS_DIR = os.path.dirname(os.path.abspath(__file__)) MIGRATIONS = { 'v1.0': 'v1.0_initial.sql', 'v1.1': 'v1.1_pos_tables.sql', + 'v1.2': 'v1.2_subdomain.sql', 'v1.3': 'v1.3_fleet.sql', 'v1.4': 'v1.4_whatsapp.sql', 'v1.5': 'v1.5_returns.sql', + 'v1.6': 'v1.6_marketplace.sql', 'v1.7': 'v1.7_plates.sql', 'v1.8': 'v1.8_performance_indexes.sql', 'v1.9': 'v1.9_redis_cache.sql', @@ -33,14 +35,20 @@ MIGRATIONS = { 'v3.0': 'v3.0_public_api.sql', 'v3.1': 'v3.1_inventory_vehicle_compat.sql', 'v3.2': 'v3.2_db_performance.sql', + 'v3.2.1': 'v3.2_qwen_vehicle_compat.sql', + 'v3.3': 'v3.3_marketplace_any_part.sql', + 'v3.3.1': 'v3.3_materialized_view.sql', 'v3.4': 'v3.4_meli_integration.sql', 'v3.5': 'v3.5_meli_questions.sql', + 'v3.5.1': 'v3.5_whatsapp_state_machine.sql', 'v3.6': 'v3.6_dropshipping.sql', 'v3.7': 'v3.7_sku_aliases.sql', 'v3.8': 'v3.8_supplier_catalog.sql', + 'v3.9': 'v3.9_supplier_catalog_prices.sql', 'v4.0': 'v4.0_multi_branch.sql', 'v4.1': 'v4.1_global_invoice.sql', 'v4.2': 'v4.2_meli_sync_queue.sql', + 'v4.3': 'v4.3_facturapi.sql', } diff --git a/pos/migrations/v4.3_facturapi.sql b/pos/migrations/v4.3_facturapi.sql index b86c590..fda72b3 100644 --- a/pos/migrations/v4.3_facturapi.sql +++ b/pos/migrations/v4.3_facturapi.sql @@ -10,7 +10,15 @@ -- ═════════════════════════════════════════════════════════════════════════════ -- 1. CFDI_QUEUE: adapt schema for Facturapi payloads -- ═════════════════════════════════════════════════════════════════════════════ -ALTER TABLE cfdi_queue RENAME COLUMN xml_unsigned TO payload_unsigned; +DO $$ +BEGIN + IF EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_name = 'cfdi_queue' AND column_name = 'xml_unsigned' + ) THEN + ALTER TABLE cfdi_queue RENAME COLUMN xml_unsigned TO payload_unsigned; + END IF; +END $$; COMMENT ON COLUMN cfdi_queue.payload_unsigned IS 'Facturapi JSON payload (previously unsigned XML for Horux)'; COMMENT ON COLUMN cfdi_queue.xml_signed IS 'Signed+stamped XML returned by Facturapi';