Database de erp-construccion - Workspace V2
T2.1: Renamed warehouse_type -> construction_warehouse_type
in almacenes_proyecto to avoid naming conflict with ERP-Core
T2.3: Added user_id column to hr.employees
- Optional FK to auth.users (employee may not have system access)
- Unique constraint for 1:1 mapping
- Conditional FK (only created if auth.users exists)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
||
|---|---|---|
| docs | ||
| init-scripts | ||
| schemas | ||
| seeds/dev | ||
| tests | ||
| _MAP.md | ||
| .gitignore | ||
| DDL-EXECUTION-ORDER.md | ||
| drop-and-recreate-database.sh | ||
| HERENCIA-ERP-CORE.md | ||
| README.md | ||
| VALIDACION-DDL-INVENTARIOS.md | ||
| validate-clean-load-policy.sh | ||
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 construccioninventory- Extension almacen de obrapurchase- Extension compras por proyectofinance- 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:
- El schema
authdebe existir con las tablastenantsyusers - Ver
DDL-EXECUTION-ORDER.mdpara 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_caseplural - Columnas:
snake_casesingular - 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-> Usarauthproject_management-> Usarconstructionfinancial_management-> Usarestimates- Ver
DDL-EXECUTION-ORDER.mdpara 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 dependenciasHERENCIA-ERP-CORE.md- Relacion con erp-core_MAP.md- Mapa completo de la BDVALIDACION-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