michangarrito/orchestration/_archive/_definitions/validations/VALIDATION-DDL.md
Adrian Flores Cortes 2fb9f3f6b5
Some checks are pending
CI/CD Pipeline / Backend CI (push) Waiting to run
CI/CD Pipeline / Frontend CI (push) Waiting to run
CI/CD Pipeline / WhatsApp Service CI (push) Waiting to run
CI/CD Pipeline / Mobile CI (push) Waiting to run
CI/CD Pipeline / Docker Build (./apps/backend, ./apps/backend/Dockerfile, backend) (push) Blocked by required conditions
CI/CD Pipeline / Docker Build (./apps/frontend, ./apps/frontend/Dockerfile, frontend) (push) Blocked by required conditions
CI/CD Pipeline / Docker Build (./apps/whatsapp-service, ./apps/whatsapp-service/Dockerfile, whatsapp-service) (push) Blocked by required conditions
CI/CD Pipeline / Deploy to Production (push) Blocked by required conditions
[ESTANDAR-ORCHESTRATION] refactor: Consolidate to standard structure
- Move 7 non-standard folders to _archive/
- Archive 3 extra root files
- Update _MAP.md with standardized structure

Standard: SIMCO-ESTANDAR-ORCHESTRATION v1.0.0
Level: CONSUMER (L2)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 14:38:04 -06:00

2.0 KiB

Validación DDL - PostgreSQL

Definición Canónica

Alias: @DEF_VAL_DDL Dominio: Database DDL PostgreSQL


COMANDOS OBLIGATORIOS

# ANTES de marcar tarea como completada:

# 1. Validar sintaxis SQL
psql -h localhost -U postgres -d {DB} -f {archivo}.sql --set ON_ERROR_STOP=1

# 2. Verificar que no hay errores
echo $?  # Debe ser 0

# 3. Si existe script de recreación:
./scripts/recreate-database.sh  # DEBE ejecutar sin errores

CRITERIOS DE ACEPTACIÓN

sintaxis:
  resultado: "SQL ejecuta sin errores"
  encoding: "UTF-8"
  schema_correcto: true

convenciones:
  tablas: "snake_case, plural (users, products)"
  columnas: "snake_case (created_at, user_id)"
  constraints: "{tabla}_{columna}_{tipo} (users_email_unique)"
  indices: "idx_{tabla}_{columnas}"
  foreign_keys: "fk_{tabla_origen}_{tabla_destino}"

integridad:
  - "Primary keys definidas"
  - "Foreign keys con ON DELETE/UPDATE"
  - "NOT NULL donde aplique"
  - "DEFAULT values apropiados"
  - "CHECK constraints donde necesario"

VALIDACIONES ADICIONALES

tablas:
  - "Columnas id, created_at, updated_at presentes"
  - "Tipos de datos apropiados"
  - "Índices en columnas de búsqueda frecuente"

rls_policies:
  - "Habilitado en tablas multi-tenant"
  - "Políticas para SELECT, INSERT, UPDATE, DELETE"
  - "Usando tenant_id del contexto"

funciones:
  - "SECURITY DEFINER/INVOKER correcto"
  - "Manejo de errores (EXCEPTION)"
  - "Documentación en comentarios"

triggers:
  - "Timing correcto (BEFORE/AFTER)"
  - "Operaciones correctas (INSERT/UPDATE/DELETE)"
  - "Función trigger existe"

ERRORES COMUNES

- error: "relation already exists"
  causa: "Tabla/objeto ya existe"
  solucion: "Usar IF NOT EXISTS o DROP primero"

- error: "foreign key constraint violation"
  causa: "Referencia a registro inexistente"
  solucion: "Verificar orden de inserción o CASCADE"

- error: "column does not exist"
  causa: "Nombre de columna incorrecto"
  solucion: "Verificar nombres y comillas"

Referencia: @PERFIL_DATABASE, @SIMCO_DDL