Diagnóstico y fix SQL Server: SERVERNAME, TDS_Version, Puerto explicitos
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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) ───────────────────
|
||||||
|
|||||||
@@ -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) ──
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user