Драйверы для Microsoft SQL Сервер не найден Docker / Python - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь запустить DAG через Airflow на моем docker контейнере для доступа к моей базе данных SQL со следующими данными:

server = '####'
database = '####'
username = '####'
password = '####'
driver = '{ODBC Driver 13 for SQL Server}'
params = urllib.parse.quote_plus('DRIVER='+driver+';SERVER='+server+';PORT=1433;DATABASE='+database+';UID='+username+';PWD='+ password)
engine = sqlalchemy.create_engine("mssql+pyodbc:///?odbc_connect=%s" % params)


def push_to_sql(**context):
    salesforce_report = context['task_instance'].xcom_pull(task_ids='fetch_sf_data')
    salesforce_report.to_sql('Daily_Report_SF',engine,if_exists='replace' ,index=False)

, но получаю следующий код ошибки:

pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 13 for SQL Server' : file not found (0) (SQLDriverConnect)")

Я попытался использовать следующее решение ( Не могу открыть lib 'ODB C Драйвер 13 для SQL Сервер'? Проблема линковки Sym? ), но это не сработало.

Когда я запускаю odbcinst -j, я получаю следующее:

unixODBC 2.3.6
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

Если это помогает узнать, контейнер запускает образ puckel / docker -flowflow на компьютере, работающем на Windows 10. Что я делаю не так и как это исправить?

Большое спасибо за вашу помощь!

...