Ошибка 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], поскольку те, что приведены в этом ответе, могут со временем устареть.