Files
plantillas-proyectos/scripts/backend-entrypoint.sh
acazares 58a2f0ade6 Add reference data models and seed data for incoterms, invoice types, material types, payment methods, pedimento codes, pedimento regimens, sectors, states, transport modes, transport types, and valuation methods
- Implemented SQLAlchemy models for incoterms, invoice types, material types, payment methods, pedimento codes, pedimento regimens, sectors, states, transport modes, transport types, and valuation methods.
- Added seed data for each reference data model to populate the database with initial values.
- Ensured primary key constraints and appropriate data types for each model.
- Established relationships where necessary, particularly in pedimento codes and regimens.
2025-10-19 19:03:15 -05:00

63 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
set -e
# Script de inicialización para el Backend FastAPI
# Espera a las dependencias y ejecuta migraciones antes de iniciar
echo "=========================================="
echo "Backend FastAPI - Inicialización"
echo "=========================================="
# Función para esperar a un puerto TCP usando Python
wait_for_tcp() {
local host=$1
local port=$2
local service=$3
local max_attempts=30
local attempt=1
echo "Esperando a que $service esté disponible en ${host}:${port}..."
while [ $attempt -le $max_attempts ]; do
if python -c "import socket; s = socket.socket(); s.settimeout(3); s.connect(('$host', $port)); s.close()" 2>/dev/null; then
echo "$service está listo y accesible"
return 0
fi
echo "$service no está listo aún... (intento $attempt/$max_attempts)"
attempt=$((attempt + 1))
sleep 2
done
echo "⚠ WARNING: $service no estuvo disponible después de $max_attempts intentos"
echo " Continuando de todas formas..."
return 0
}
# Esperar a PostgreSQL
wait_for_tcp "${CORE_DB_HOST:-postgres-a76}" "${CORE_DB_PORT:-5432}" "PostgreSQL"
# Esperar a Keycloak (HTTP por defecto usa puerto 8080)
wait_for_tcp "keycloak" "8080" "Keycloak"
# Ejecutar migraciones de Alembic
if [ -d "/app/alembic" ]; then
echo "Ejecutando migraciones de Alembic..."
alembic upgrade head || {
echo "⚠ WARNING: Error al ejecutar migraciones"
echo " Verificando estado de la base de datos..."
alembic current || echo " No se pudo determinar la versión actual"
}
echo "✓ Migraciones completadas"
else
echo "⚠ WARNING: Directorio /app/alembic no encontrado"
echo " Las migraciones de base de datos no se ejecutaron"
fi
echo "=========================================="
echo "Iniciando aplicación FastAPI..."
echo "=========================================="
# Ejecutar el comando que se pasó al contenedor
exec "$@"