mirror of
https://github.com/getredash/redash.git
synced 2025-12-19 17:37:19 -05:00
mssql-odbc-arm64 (#6924)
Co-authored-by: Peter Lee <yankeeguyu@gmail.com>
This commit is contained in:
15
Dockerfile
15
Dockerfile
@@ -66,17 +66,18 @@ RUN apt-get update && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN \
|
||||
curl https://packages.microsoft.com/config/debian/12/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
|
||||
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg && \
|
||||
apt update && \
|
||||
ACCEPT_EULA=Y apt install -y --no-install-recommends msodbcsql18 && \
|
||||
apt clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ARG TARGETPLATFORM
|
||||
ARG databricks_odbc_driver_url=https://databricks-bi-artifacts.s3.us-east-2.amazonaws.com/simbaspark-drivers/odbc/2.6.26/SimbaSparkODBC-2.6.26.1045-Debian-64bit.zip
|
||||
RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then \
|
||||
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg \
|
||||
&& curl https://packages.microsoft.com/config/debian/12/prod.list > /etc/apt/sources.list.d/mssql-release.list \
|
||||
&& apt-get update \
|
||||
&& ACCEPT_EULA=Y apt-get install -y --no-install-recommends msodbcsql17 \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& curl "$databricks_odbc_driver_url" --location --output /tmp/simba_odbc.zip \
|
||||
curl "$databricks_odbc_driver_url" --location --output /tmp/simba_odbc.zip \
|
||||
&& chmod 600 /tmp/simba_odbc.zip \
|
||||
&& unzip /tmp/simba_odbc.zip -d /tmp/simba \
|
||||
&& dpkg -i /tmp/simba/*.deb \
|
||||
|
||||
@@ -48,7 +48,7 @@ class SQLServerODBC(BaseSQLQueryRunner):
|
||||
"verify_ssl": {
|
||||
"type": "boolean",
|
||||
"title": "Verify SSL certificate",
|
||||
"default": True,
|
||||
"default": False,
|
||||
},
|
||||
},
|
||||
"order": [
|
||||
@@ -120,14 +120,29 @@ class SQLServerODBC(BaseSQLQueryRunner):
|
||||
db = self.configuration["db"]
|
||||
port = self.configuration.get("port", 1433)
|
||||
|
||||
connection_string_fmt = "DRIVER={{ODBC Driver 17 for SQL Server}};SERVER={},{};DATABASE={};UID={};PWD={}"
|
||||
connection_string = connection_string_fmt.format(server, port, db, user, password)
|
||||
connection_params = {
|
||||
"Driver": "{ODBC Driver 18 for SQL Server}",
|
||||
"Server": server,
|
||||
"Port": port,
|
||||
"Database": db,
|
||||
"Uid": user,
|
||||
"Pwd": password,
|
||||
}
|
||||
|
||||
if self.configuration.get("use_ssl", False):
|
||||
connection_string += ";Encrypt=YES"
|
||||
connection_params["Encrypt"] = "YES"
|
||||
|
||||
if not self.configuration.get("verify_ssl"):
|
||||
connection_string += ";TrustServerCertificate=YES"
|
||||
connection_params["TrustServerCertificate"] = "YES"
|
||||
else:
|
||||
connection_params["TrustServerCertificate"] = "NO"
|
||||
else:
|
||||
connection_params["Encrypt"] = "NO"
|
||||
|
||||
def fn(k):
|
||||
return "{}={}".format(k, connection_params[k])
|
||||
|
||||
connection_string = ";".join(list(map(fn, connection_params)))
|
||||
|
||||
connection = pyodbc.connect(connection_string)
|
||||
cursor = connection.cursor()
|
||||
|
||||
Reference in New Issue
Block a user