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 PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=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 \ RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \ build-essential \
curl \ curl \
gnupg \ gcc \
g++ \
unixodbc \ unixodbc \
unixodbc-dev \ unixodbc-dev \
freetds-bin \
freetds-dev \
tdsodbc \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# Agregar la firma de Microsoft y el repositorio correspondiente a la versión de Debian instalada # Configurar FreeTDS globalmente con versión TDS 7.3 y charset UTF-8
RUN curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg \ RUN mkdir -p /etc/freetds && echo "[global]\n\ttds version = 7.3\n\tclient charset = UTF-8\n" > /etc/freetds/freetds.conf
&& . /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/*
# Establecer directorio de trabajo # Establecer directorio de trabajo
WORKDIR /app WORKDIR /app

View File

@@ -44,10 +44,22 @@ class DataManager:
def sql_conn(self): def sql_conn(self):
import pyodbc import pyodbc
conn_str = ( if "FreeTDS" in self.sql_driver:
f"DRIVER={self.sql_driver};SERVER={self.sql_server};" conn_str = (
f"DATABASE={self.sql_db};UID={self.sql_user};PWD={self.sql_pass}" 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) return pyodbc.connect(conn_str)
# ── Config de campañas (GitHub, opcional) ─────────────────── # ── Config de campañas (GitHub, opcional) ───────────────────

View File

@@ -139,10 +139,22 @@ class DataManager:
def sql_conn(self): def sql_conn(self):
import pyodbc import pyodbc
conn_str = ( if "FreeTDS" in self.sql_driver:
f"DRIVER={self.sql_driver};SERVER={self.sql_server};" conn_str = (
f"DATABASE={self.sql_db};UID={self.sql_user};PWD={self.sql_pass}" 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) return pyodbc.connect(conn_str)
# ── CHATWOOT: leads de pauta (mapa de campañas, dedup por mensaje) ── # ── CHATWOOT: leads de pauta (mapa de campañas, dedup por mensaje) ──

View File

@@ -19,8 +19,8 @@ services:
- SQL_DATABASE=${SQL_DATABASE} - SQL_DATABASE=${SQL_DATABASE}
- SQL_USERNAME=${SQL_USERNAME} - SQL_USERNAME=${SQL_USERNAME}
- SQL_PASSWORD=${SQL_PASSWORD} - SQL_PASSWORD=${SQL_PASSWORD}
# En el contenedor Docker usaremos el driver oficial de Linux # En el contenedor Docker usaremos FreeTDS o el driver configurado en el entorno
- SQL_DRIVER=${SQL_DRIVER:-{ODBC Driver 17 for SQL Server}} - SQL_DRIVER=${SQL_DRIVER:-{FreeTDS}}
- GITHUB_BASE=${GITHUB_BASE} - GITHUB_BASE=${GITHUB_BASE}
- SUPABASE_URL=${SUPABASE_URL} - SUPABASE_URL=${SUPABASE_URL}
- SUPABASE_KEY=${SUPABASE_KEY} - SUPABASE_KEY=${SUPABASE_KEY}
@@ -40,7 +40,7 @@ services:
context: ./frontend context: ./frontend
dockerfile: Dockerfile dockerfile: Dockerfile
args: args:
- VITE_API_URL=${VITE_API_URL} - VITE_API_URL=https://api-leads.escueladerefrigeracion.lat
container_name: leads-frontend container_name: leads-frontend
restart: unless-stopped restart: unless-stopped
ports: ports: