diff --git a/backend/Dockerfile b/backend/Dockerfile index 1fc2512..60dfa23 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -17,10 +17,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ # Registrar el driver FreeTDS bajo el nombre "SQL Server" (el que usa data_manager.py) RUN printf "[SQL Server]\nDescription = FreeTDS Driver\nDriver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so\nSetup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so\nFileUsage = 1\n" > /etc/odbcinst.ini -# Configurar FreeTDS explicitamente: version de protocolo TDS, puerto y cifrado. -# "encryption = off" evita fallos de negociacion con SQL Servers antiguos/mal configurados. -# TDSDUMP habilita un log detallado para diagnosticar fallos de conexion. -RUN printf "[global]\n\tport = 1433\n\ttds version = 7.3\n\tclient charset = UTF-8\n\tencryption = off\n" > /etc/freetds/freetds.conf +# Configurar FreeTDS: global + entrada específica para el servidor SQL. +# pyodbc busca la entrada por SERVER name en freetds.conf, por eso la definimos aquí. +RUN printf "[global]\n\tport = 1433\n\ttds version = 7.3\n\tclient charset = UTF-8\n\tencryption = off\n\n[SQLSERVER_BDUS]\n\thost = 191.98.134.80\n\tport = 1433\n\ttds version = 7.3\n" > /etc/freetds/freetds.conf COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt diff --git a/backend/data_manager.py b/backend/data_manager.py index cbc7fb9..2630e48 100644 --- a/backend/data_manager.py +++ b/backend/data_manager.py @@ -43,8 +43,10 @@ class DataManager: def sql_conn(self): import pyodbc + # Usar un alias de servidor definido en /etc/freetds/freetds.conf (SQLSERVER_BDUS) + # en lugar de la IP directa, para que pyodbc/ODBC encuentre la configuración de FreeTDS. conn_str = ( - f"DRIVER={{SQL Server}};SERVER={self.sql_server};" + f"DRIVER={{SQL Server}};SERVER=SQLSERVER_BDUS;" f"DATABASE={self.sql_db};UID={self.sql_user};PWD={self.sql_pass}" ) return pyodbc.connect(conn_str) diff --git a/backend/data_manager_v2.py b/backend/data_manager_v2.py index bf0e1ac..1a66fd5 100644 --- a/backend/data_manager_v2.py +++ b/backend/data_manager_v2.py @@ -138,8 +138,10 @@ class DataManager: def sql_conn(self): import pyodbc + # Usar un alias de servidor definido en /etc/freetds/freetds.conf (SQLSERVER_BDUS) + # en lugar de la IP directa, para que pyodbc/ODBC encuentre la configuración de FreeTDS. conn_str = ( - f"DRIVER={{SQL Server}};SERVER={self.sql_server};" + f"DRIVER={{SQL Server}};SERVER=SQLSERVER_BDUS;" f"DATABASE={self.sql_db};UID={self.sql_user};PWD={self.sql_pass}" ) return pyodbc.connect(conn_str)