Database de erp-construccion - Workspace V2
Go to file
Adrian Flores Cortes 6b02d8ab08 [ST-P0-003] docs: Add DDL execution order and update README
- Create DDL-EXECUTION-ORDER.md with schema dependencies
- Document execution order for erp-core + erp-construccion
- Add WSL commands for database recreation
- Update README.md with current schema counts (10 schemas, 143 tables, 115 ENUMs)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 07:19:45 -06:00
init-scripts [PROP-CORE-004] feat: Add payment_terminals schema DDL 2026-01-25 02:46:34 -06:00
schemas [MAI-012] feat: Add DDL for contrato_addendas table 2026-01-25 09:08:50 -06:00
_MAP.md Migración desde erp-construccion/database - Estándar multi-repo v2 2026-01-16 08:11:21 -06:00
.gitignore chore: Add .gitignore for clean repository 2026-01-20 07:31:41 -06:00
DDL-EXECUTION-ORDER.md [ST-P0-003] docs: Add DDL execution order and update README 2026-02-03 07:19:45 -06:00
drop-and-recreate-database.sh Migración desde erp-construccion/database - Estándar multi-repo v2 2026-01-16 08:11:21 -06:00
HERENCIA-ERP-CORE.md Migración desde erp-construccion/database - Estándar multi-repo v2 2026-01-16 08:11:21 -06:00
README.md [ST-P0-003] docs: Add DDL execution order and update README 2026-02-03 07:19:45 -06:00
VALIDACION-DDL-INVENTARIOS.md Migración desde erp-construccion/database - Estándar multi-repo v2 2026-01-16 08:11:21 -06:00
validate-clean-load-policy.sh Migración desde erp-construccion/database - Estándar multi-repo v2 2026-01-16 08:11:21 -06:00

Database - ERP Construccion

Stack: PostgreSQL 15+ con PostGIS Version: 2.0.0 Fecha: 2026-02-03 Dependencia: erp-core (auth, core schemas)


Descripcion

Base de datos del ERP de construccion. Extiende erp-core con schemas especializados para gestion de obras, estimaciones, INFONAVIT, HSE y mas.

Schemas principales (actuales):

  • construction - Proyectos, fraccionamientos, avances (24 tablas)
  • estimates - Presupuestos, estimaciones, generadores (8 tablas)
  • infonavit - Integracion INFONAVIT (8 tablas)
  • hse - Seguridad, salud y ambiente (58 tablas)
  • hr - Extension RRHH para construccion
  • inventory - Extension almacen de obra
  • purchase - Extension compras por proyecto
  • finance - Contabilidad construccion (11 tablas)
  • assets - Equipos y maquinaria (11 tablas)
  • documents - Gestion documental (11 tablas)

Total: 10 schemas, 143 tablas, 115 ENUMs


Estructura

database/
├── DDL-EXECUTION-ORDER.md        # Orden de ejecucion (LEER PRIMERO)
├── README.md                     # Este archivo
├── HERENCIA-ERP-CORE.md          # Relacion con erp-core
├── _MAP.md                       # Mapa completo de la BD
├── VALIDACION-DDL-INVENTARIOS.md # Validaciones
├── drop-and-recreate-database.sh # Script recrear BD
├── validate-clean-load-policy.sh # Validar politica carga limpia
├── init-scripts/
│   ├── 01-init-database.sql      # Extensiones, funciones, schemas base
│   └── 02-payment-terminals.sql  # Terminales de pago
└── schemas/
    ├── 01-construction-schema-ddl.sql    # construction (24 tablas)
    ├── 02-hr-schema-ddl.sql              # hr extension
    ├── 03-hse-schema-ddl.sql             # hse (58 tablas, 67 ENUMs)
    ├── 04-estimates-schema-ddl.sql       # estimates (8 tablas)
    ├── 05-infonavit-schema-ddl.sql       # infonavit (8 tablas)
    ├── 06-inventory-ext-schema-ddl.sql   # inventory extension
    ├── 07-purchase-ext-schema-ddl.sql    # purchase extension
    ├── 08-finance-schema-ddl.sql         # finance (11 tablas)
    ├── 09-assets-schema-ddl.sql          # assets (11 tablas)
    ├── 10-documents-schema-ddl.sql       # documents (11 tablas)
    └── 99-rls-policies.sql               # Politicas RLS

Dependencias

IMPORTANTE: Este proyecto depende de erp-core. Antes de ejecutar los DDL de construccion:

  1. El schema auth debe existir con las tablas tenants y users
  2. Ver DDL-EXECUTION-ORDER.md para orden de ejecucion completo

Setup Inicial

Opcion A: Recrear BD Completa (Recomendado)

# Desde Windows PowerShell - ejecuta en WSL
wsl -d Ubuntu-24.04 -u developer -- bash '/mnt/c/Empresas/ISEM/workspace-v2/projects/erp-construccion/database/drop-and-recreate-database.sh'

Opcion B: Ejecutar DDL Manualmente

# Variables de conexion
export PGHOST=localhost
export PGPORT=5432
export PGDATABASE=erp_construccion_db
export PGUSER=erp_admin
export PGPASSWORD=erp_dev_2026

# Ruta base desde WSL
BASE="/mnt/c/Empresas/ISEM/workspace-v2/projects/erp-construccion/database"

# 1. Inicializacion
psql -f "$BASE/init-scripts/01-init-database.sql"

# 2. Schemas en orden
psql -f "$BASE/schemas/01-construction-schema-ddl.sql"
psql -f "$BASE/schemas/02-hr-schema-ddl.sql"
psql -f "$BASE/schemas/03-hse-schema-ddl.sql"
psql -f "$BASE/schemas/04-estimates-schema-ddl.sql"
psql -f "$BASE/schemas/05-infonavit-schema-ddl.sql"
psql -f "$BASE/schemas/06-inventory-ext-schema-ddl.sql"
psql -f "$BASE/schemas/07-purchase-ext-schema-ddl.sql"
psql -f "$BASE/schemas/08-finance-schema-ddl.sql"
psql -f "$BASE/schemas/09-assets-schema-ddl.sql"
psql -f "$BASE/schemas/10-documents-schema-ddl.sql"
psql -f "$BASE/schemas/99-rls-policies.sql"

Scripts Disponibles

Script Descripcion
drop-and-recreate-database.sh Elimina y recrea la BD completa
validate-clean-load-policy.sh Valida politica de carga limpia

Convenciones

Nomenclatura Actual

  • Schemas: snake_case (sin sufijo _management)
  • Tablas: snake_case plural
  • Columnas: snake_case singular
  • Indices: idx_{tabla}_{columnas}
  • Constraints: chk_{tabla}_{condicion}, uq_{tabla}_{columnas}

Schemas Legacy (Deprecados)

Los siguientes schemas existen para compatibilidad pero NO deben usarse:

  • auth_management -> Usar auth
  • project_management -> Usar construction
  • financial_management -> Usar estimates
  • Ver DDL-EXECUTION-ORDER.md para lista completa

Validacion

Verificar Schemas

SELECT schema_name
FROM information_schema.schemata
WHERE schema_name IN (
    'auth', 'core', 'construction', 'estimates',
    'infonavit', 'hse', 'hr', 'inventory',
    'purchase', 'finance', 'assets', 'documents'
)
ORDER BY schema_name;

Contar Tablas por Schema

SELECT table_schema, COUNT(*) as table_count
FROM information_schema.tables
WHERE table_schema IN (
    'construction', 'estimates', 'infonavit', 'hse',
    'hr', 'inventory', 'purchase', 'finance', 'assets', 'documents'
)
GROUP BY table_schema
ORDER BY table_count DESC;

Verificar Tablas Core Requeridas

-- Estas tablas deben existir antes de ejecutar DDL de construccion
SELECT EXISTS (
    SELECT 1 FROM pg_tables
    WHERE schemaname = 'auth' AND tablename = 'tenants'
) AS tenants_exists,
EXISTS (
    SELECT 1 FROM pg_tables
    WHERE schemaname = 'auth' AND tablename = 'users'
) AS users_exists;

Referencias

  • DDL-EXECUTION-ORDER.md - Orden de ejecucion y dependencias
  • HERENCIA-ERP-CORE.md - Relacion con erp-core
  • _MAP.md - Mapa completo de la BD
  • VALIDACION-DDL-INVENTARIOS.md - Validaciones de inventario
  • ../../CLAUDE.md - Instrucciones del proyecto

Variables de Entorno

# Desarrollo local (WSL)
DB_HOST=localhost
DB_PORT=5432
DB_NAME=erp_construccion_db
DB_USER=erp_admin
DB_PASSWORD=erp_dev_2026

# Connection string
DATABASE_URL=postgresql://erp_admin:erp_dev_2026@localhost:5432/erp_construccion_db

Credenciales de Desarrollo

Variable Valor
Database erp_construccion_db
User erp_admin
Password erp_dev_2026
Host localhost
Port 5432

Documentacion actualizada: 2026-02-03