Saltar a contenido

PDF-010V - B2B Local Dev DDL Execution

Fecha: 2026-06-23

Estado: NO-GO BACKUP FAILED / SIN DDL B2B

Resumen Simple

Se publico primero PDF-010U y quedo alineado local, origin y VPS en f9c4a4f7cd57050476e8cafd59a00fa936c429a5.

Despues se intento el gate local/dev PDF-010V para crear las tablas B2B reales con el DDL corregido PDF-010P. El preflight read-only paso, pero el backup acotado obligatorio de business_observer fallo antes del DDL.

Resultado: NO-GO. No se ejecuto el DDL.

SAFE POINT

  • HEAD inicial: f9c4a4f7cd57050476e8cafd59a00fa936c429a5
  • origin/main inicial: f9c4a4f7cd57050476e8cafd59a00fa936c429a5
  • repo inicial: limpio
  • ultimo commit publicado: f9c4a4f docs: add pdf-010u b2b backup strategy ddl retry plan

Publicacion PDF-010U

  • git push origin main: PASS
  • deploy Knowledge Portal en VPS: PASS
  • HTTP VPS local http://127.0.0.1:8085/: 200
  • HTTP publico https://doc.alpuntodeventa.com.ar/: 200
  • local/origin/VPS quedaron alineados en f9c4a4f7cd57050476e8cafd59a00fa936c429a5.

Credencial Admin Owner Local

  • secret real usado: C:\APV\openclawai\.venv-portal\secrets\postgres-target-admin-owner.env
  • el path escrito sin separador antes de .venv-portal no existe en esta workstation: C:\APV\openclawai.venv-portal\secrets\postgres-target-admin-owner.env
  • archivo real: existente
  • archivo real: ignorado por Git mediante .venv*/
  • variables requeridas: presentes
  • secretos impresos: NO
  • connection string completa impresa: NO

Herramientas PostgreSQL

  • pg_dump: 15.15
  • psql: 15.15

Preflight Read-Only Local Dev

  • current_database: gestion_de_negocios_core
  • current_user: openclaw_bo_admin
  • schema business_observer: existe
  • owner de schema: openclaw_bo_admin
  • CREATE sobre DB: true
  • CREATE sobre schema: true
  • roles presentes: openclaw_bo_admin, openclaw_bo_writer, openclaw_bo_reader
  • objetos B2B antes del DDL:
  • business_observer.b2b_customer_mapping: ausente
  • business_observer.b2b_product_price: ausente
  • business_observer.b2b_pricing_decision_log: ausente
  • business_observer.v_b2b_customer_effective_price: ausente

Backup Acotado Business Observer

Comando autorizado conceptualmente:

powershell pg_dump -Fc -n business_observer

Destino fuera de Git:

C:\APV\backups\openclawai\PDF-010V\

Resultado:

  • backup acotado: NO-GO BACKUP FAILED
  • artefacto fallido: C:\APV\backups\openclawai\PDF-010V\business_observer-pre-ddl-20260623-123032.dump
  • tamano: 0 bytes
  • backup valido: NO
  • motivo: permission denied for table source_003_sales_items
  • detalle operativo: pg_dump intento bloquear business_observer.source_003_sales_items en ACCESS SHARE MODE.

DDL PDF-010P

Archivo autorizado pero no ejecutado:

infra/business-observer/production/b2b-pricing/PDF-010P/PDF-010P-B2B-PERSISTENCE-DDL-RETRY-CANDIDATE.sql

Resultado:

  • DDL ejecutado: NO
  • motivo: backup acotado obligatorio fallo y quedo en 0 bytes
  • rollback ejecutado: NO

Post-Checks Read-Only

Post-check posterior al NO-GO confirma que los objetos B2B siguen ausentes:

  • business_observer.b2b_customer_mapping: ausente
  • business_observer.b2b_product_price: ausente
  • business_observer.b2b_pricing_decision_log: ausente
  • business_observer.v_b2b_customer_effective_price: ausente

Permisos Grants RLS

Como el DDL no se ejecuto:

  • constraints B2B nuevas: no creadas
  • indexes/unique B2B nuevos: no creados
  • grants B2B nuevos: no aplicados
  • RLS B2B nuevo: no aplicado
  • objetos duplicados: no detectados para los objetos B2B esperados

Rollback Candidate

Rollback retry candidate disponible, no ejecutado:

infra/business-observer/production/b2b-pricing/PDF-010P/PDF-010P-B2B-PERSISTENCE-ROLLBACK-RETRY-CANDIDATE.sql

No se ejecuto rollback porque no se ejecuto DDL.

Que NO Se Hizo

  • no se ejecuto PDF-010P;
  • no se crearon tablas B2B;
  • no se creo vista B2B;
  • no se aplicaron grants/RLS;
  • no se cargo ningun dato B2B;
  • no se ejecutaron inserts masivos;
  • no se ejecutaron updates, deletes ni truncate;
  • no se toco VPS/prod;
  • no se toco WooCommerce API;
  • no se modifico .env;
  • no se imprimieron secrets, passwords ni connection strings completas;
  • no se modifico runtime;
  • no se ejecuto sync, scheduler, cron ni pipelines.

GO/NO-GO Final

Estado final: NO-GO BACKUP FAILED / SIN DDL B2B.

El bloqueo ya no esta fuera del schema como en PDF-010T; ahora esta dentro de business_observer, porque el rol openclaw_bo_admin no puede respaldar una tabla existente del schema: source_003_sales_items.

Proximo Paso Recomendado

Crear un gate separado para resolver la estrategia de backup local/dev:

  1. otorgar permisos de backup sobre todos los objetos existentes de business_observer al rol usado por pg_dump, o usar un rol backup/admin aprobado;
  2. repetir pg_dump -Fc -n business_observer hasta obtener un archivo mayor a 0 bytes;
  3. recien despues reintentar PDF-010P con ON_ERROR_STOP=1.