Diagnóstico y fix SQL Server: SERVERNAME, TDS_Version, Puerto explicitos

This commit is contained in:
desoladorxx
2026-07-22 14:22:18 -05:00
parent 7f38210017
commit 357b9231ed
4 changed files with 43 additions and 20 deletions

View File

@@ -4,22 +4,21 @@ FROM python:3.10-slim
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
# Instalar dependencias del sistema requeridas para pyodbc y msodbcsql
# Instalar dependencias del sistema requeridas para pyodbc y FreeTDS
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
curl \
gnupg \
gcc \
g++ \
unixodbc \
unixodbc-dev \
freetds-bin \
freetds-dev \
tdsodbc \
&& rm -rf /var/lib/apt/lists/*
# Agregar la firma de Microsoft y el repositorio correspondiente a la versión de Debian instalada
RUN curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg \
&& . /etc/os-release \
&& curl -fsSL https://packages.microsoft.com/config/debian/$VERSION_ID/prod.list > /etc/apt/sources.list.d/mssql-release.list \
&& apt-get update \
&& ACCEPT_EULA=Y apt-get install -y --no-install-recommends msodbcsql17 \
&& rm -rf /var/lib/apt/lists/*
# Configurar FreeTDS globalmente con versión TDS 7.3 y charset UTF-8
RUN mkdir -p /etc/freetds && echo "[global]\n\ttds version = 7.3\n\tclient charset = UTF-8\n" > /etc/freetds/freetds.conf
# Establecer directorio de trabajo
WORKDIR /app

View File

@@ -44,10 +44,22 @@ class DataManager:
def sql_conn(self):
import pyodbc
conn_str = (
f"DRIVER={self.sql_driver};SERVER={self.sql_server};"
f"DATABASE={self.sql_db};UID={self.sql_user};PWD={self.sql_pass}"
)
if "FreeTDS" in self.sql_driver:
conn_str = (
f"DRIVER={self.sql_driver};"
f"SERVER={self.sql_server};"
f"PORT=1433;"
f"DATABASE={self.sql_db};"
f"UID={self.sql_user};"
f"PWD={self.sql_pass};"
f"TDS_Version=7.3;"
f"ClientCharset=UTF-8;"
)
else:
conn_str = (
f"DRIVER={self.sql_driver};SERVER={self.sql_server};"
f"DATABASE={self.sql_db};UID={self.sql_user};PWD={self.sql_pass}"
)
return pyodbc.connect(conn_str)
# ── Config de campañas (GitHub, opcional) ───────────────────

View File

@@ -139,10 +139,22 @@ class DataManager:
def sql_conn(self):
import pyodbc
conn_str = (
f"DRIVER={self.sql_driver};SERVER={self.sql_server};"
f"DATABASE={self.sql_db};UID={self.sql_user};PWD={self.sql_pass}"
)
if "FreeTDS" in self.sql_driver:
conn_str = (
f"DRIVER={self.sql_driver};"
f"SERVER={self.sql_server};"
f"PORT=1433;"
f"DATABASE={self.sql_db};"
f"UID={self.sql_user};"
f"PWD={self.sql_pass};"
f"TDS_Version=7.3;"
f"ClientCharset=UTF-8;"
)
else:
conn_str = (
f"DRIVER={self.sql_driver};SERVER={self.sql_server};"
f"DATABASE={self.sql_db};UID={self.sql_user};PWD={self.sql_pass}"
)
return pyodbc.connect(conn_str)
# ── CHATWOOT: leads de pauta (mapa de campañas, dedup por mensaje) ──