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
- 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>
2.0 KiB
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