Semana 8. Despliegue Local del Entorno D1 y Configuración de Analíticas con Dash en Unibotics
Esta semana el trabajo se ha centrado en levantar con éxito el entorno local D1 de Unibotics integrando las analíticas de Dash, guiando el proceso mediante comandos directos y resolviendo errores técnicos derivados de dependencias, base de datos y puertos.
Inicialmente, el despliegue se encontraba bloqueado por discrepancias en las esquemas de la base de datos con scripts antiguos y conflictos en la asignación de puertos entre el backend de Django y la aplicación de analíticas.
Archivos involucrados
- Backend:
preprocess.sql,.env. - Dash:
app.py.
El problema del entorno y la solución arquitectónica
La puesta en marcha se ha llevado a cabo superando una serie de incidencias críticas en la capa de datos y red. Los cambios y correcciones clave se dividen en los siguientes puntos:
- Aislamiento y dependencias de Dash: Se configuró un entorno virtual independiente (
venv_dash) para aislar la ejecución de las analíticas, instalando las librerías del sistema (libpq-dev,python3-dev,postgresql-client) y las dependencias de Python necesarias (redis), omitiendo paquetes obsoletos comobackports.zoneinfoen Python 3.10. - Corrección de restricciones en la base de datos: El script de preprocesamiento (
preprocess.sql) fallaba al intentar insertar registros en la tablacommon_userdebido a restricciones de nulos (NOT NULL) en columnas añadidas con el tiempo (active_exercise,max_projects,max_size,projects,size). Se solventó relajando temporalmente dichas restricciones en local con sentenciasALTER TABLEpara permitir la inyección correcta de los datos de prueba (dummy). - Resolución del conflicto de puertos: Se identificó una colisión en el puerto
7000entre Django y Dash, motivada por la lectura compartida de la variableSERVER_PORTen el archivo.env. Se ajustó la configuración lógica para que Dash respete de forma independiente el puerto estándar6124estipulado para el entorno local D1. - Sincronización de secuencias SQL: Se reajustaron los contadores de las secuencias de PostgreSQL (
setval) mediante el script para evitar conflictos de claves primarias duplicadas al poblar el entorno de desarrollo.
Adicionalmente, se han validado y sincronizado los servicios de Django y Dash en paralelo, garantizando la correcta visualización de las métricas analíticas en el navegador.