Ошибка Django mssql-django в MacOS, но она работает в Windows

Я уже установил pip install mssql-django на MacOS. Некоторое время она работала нормально, после чего перестала выполняться программа ( python3 manage.py runserver) и появилось сообщение об ошибке ниже:

django.db.utils.Error: ('01000', «[01000] [unixODBC][Driver Manager]Can't open lib „ODBC Driver 17 for SQL Server“ : file not found (0) (SQLDriverConnect)»)

Настройка БД:

'default':{
    'ENGINE': 'mssql',
    'NAME': 'dbname',
    'HOST': 'x.x.x.x',
    'PORT': '1433',
    'USER': 'sa',
    'PASSWORD': 'xxxx',
    'OPTIONS': {
        'driver': 'ODBC Driver 17 for SQL Server',
    }

Он отлично работает в Windows, но не работает в MacOS, почему?

Я уже установил pip install mssql-django на MacOS.

Это не проблема. Для mssql-django нужна системная библиотека. Что делает пакет, так это генерирует запросы для диалекта сервера MS SQL. Но подключение и управление сервером MSSQL не определено проектом, для этого используется драйвер ODBC.

Вы можете установить драйвер ODBC через brew, следуя инструкциям на сайте Microsoft learn [msdn-doc]:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release
brew update
HOMEBREW_ACCEPT_EULA=Y brew install msodbcsql17 mssql-tools

Однако я бы посоветовал использовать инструкции по ссылке [msdn-doc], поскольку те, что приведены в этом ответе, могут со временем устареть.

Вернуться на верх