Seeds include: - 01-core-catalogs.sql: Units, currencies, taxes, banks, states (~100 records) - 02-users-profiles.sql: 12 roles, 50+ permissions, 12 demo users - 03-empresa-tenant.sql: Demo company with 2 branches, 4 warehouses - 04-proyectos-obras.sql: 3 projects, stages, lots, apartments - 05-presupuestos.sql: CMIC-based concepts, 5 budgets - 06-estimaciones.sql: Contracts, estimates, advances - 07-avances-calidad.sql: Progress, logbook, quality checklists - 08-hse.sql: PPE catalog, training, incidents - 09-finanzas.sql: Chart of accounts, CxP, CxC, balanced entries - 10-activos-documentos.sql: Assets, maintenance, documents Total: ~940 records for complete demo coverage Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
110 lines
4.2 KiB
Bash
110 lines
4.2 KiB
Bash
#!/bin/bash
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
# SCRIPT: load-dev-seeds.sh
|
|
# PROYECTO: ERP Construcción
|
|
# DESCRIPCIÓN: Carga todos los seeds de desarrollo en orden
|
|
# ═══════════════════════════════════════════════════════════════════════════════
|
|
|
|
set -e # Salir si hay error
|
|
|
|
# Configuración
|
|
DB_HOST="${DB_HOST:-localhost}"
|
|
DB_PORT="${DB_PORT:-5432}"
|
|
DB_NAME="${DB_NAME:-erp_construccion_db}"
|
|
DB_USER="${DB_USER:-erp_admin}"
|
|
DB_PASSWORD="${DB_PASSWORD:-erp_dev_2026}"
|
|
|
|
# Colores para output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Directorio de seeds
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
echo -e "${BLUE}══════════════════════════════════════════════════════════════${NC}"
|
|
echo -e "${BLUE} CARGA DE SEEDS DE DESARROLLO - ERP CONSTRUCCIÓN${NC}"
|
|
echo -e "${BLUE}══════════════════════════════════════════════════════════════${NC}"
|
|
echo ""
|
|
echo -e "${YELLOW}Base de datos: ${NC}${DB_NAME}"
|
|
echo -e "${YELLOW}Host: ${NC}${DB_HOST}:${DB_PORT}"
|
|
echo -e "${YELLOW}Usuario: ${NC}${DB_USER}"
|
|
echo ""
|
|
|
|
# Función para ejecutar un seed
|
|
run_seed() {
|
|
local seed_file=$1
|
|
local seed_name=$(basename "$seed_file")
|
|
|
|
if [ -f "$seed_file" ]; then
|
|
echo -e "${YELLOW}→ Cargando: ${NC}${seed_name}..."
|
|
PGPASSWORD=$DB_PASSWORD psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -f "$seed_file" -q
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN} ✓ ${seed_name} cargado correctamente${NC}"
|
|
else
|
|
echo -e "${RED} ✗ Error al cargar ${seed_name}${NC}"
|
|
exit 1
|
|
fi
|
|
else
|
|
echo -e "${RED} ✗ Archivo no encontrado: ${seed_name}${NC}"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# Verificar conexión
|
|
echo -e "${YELLOW}Verificando conexión a la base de datos...${NC}"
|
|
PGPASSWORD=$DB_PASSWORD psql -h $DB_HOST -p $DB_PORT -U $DB_USER -d $DB_NAME -c "SELECT 1" > /dev/null 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
echo -e "${RED}✗ No se pudo conectar a la base de datos${NC}"
|
|
echo -e "${RED} Verifica las credenciales y que el servidor esté ejecutándose${NC}"
|
|
exit 1
|
|
fi
|
|
echo -e "${GREEN}✓ Conexión exitosa${NC}"
|
|
echo ""
|
|
|
|
# Array de seeds en orden de ejecución
|
|
SEEDS=(
|
|
"01-core-catalogs.sql"
|
|
"02-users-profiles.sql"
|
|
"03-empresa-tenant.sql"
|
|
"04-proyectos-obras.sql"
|
|
"05-presupuestos.sql"
|
|
"06-estimaciones.sql"
|
|
"07-avances-calidad.sql"
|
|
"08-hse.sql"
|
|
"09-finanzas.sql"
|
|
"10-activos-documentos.sql"
|
|
)
|
|
|
|
# Ejecutar seeds
|
|
echo -e "${BLUE}Iniciando carga de seeds...${NC}"
|
|
echo ""
|
|
|
|
TOTAL=${#SEEDS[@]}
|
|
CURRENT=0
|
|
|
|
for seed in "${SEEDS[@]}"; do
|
|
CURRENT=$((CURRENT + 1))
|
|
echo -e "${BLUE}[${CURRENT}/${TOTAL}]${NC}"
|
|
run_seed "${SCRIPT_DIR}/${seed}"
|
|
echo ""
|
|
done
|
|
|
|
echo -e "${BLUE}══════════════════════════════════════════════════════════════${NC}"
|
|
echo -e "${GREEN} ✓ TODOS LOS SEEDS CARGADOS EXITOSAMENTE${NC}"
|
|
echo -e "${BLUE}══════════════════════════════════════════════════════════════${NC}"
|
|
echo ""
|
|
echo -e "${YELLOW}Usuarios demo disponibles:${NC}"
|
|
echo " - admin@demo.com / Demo2026! (Super Admin)"
|
|
echo " - director@demo.com / Demo2026! (Director)"
|
|
echo " - gerente1@demo.com / Demo2026! (Gerente Obra)"
|
|
echo " - residente1@demo.com / Demo2026! (Residente)"
|
|
echo ""
|
|
echo -e "${YELLOW}Proyectos demo:${NC}"
|
|
echo " - Residencial Las Palmas (horizontal)"
|
|
echo " - Torre Diamante (vertical)"
|
|
echo " - Plaza Central (comercial)"
|
|
echo ""
|