Mssql не является доступным бэкендом базы данных или не может быть импортирован
Я следую этому руководству. Mssql-django и у меня Django версии 3.2.12. Я уже установил mssql-django 1.1.1
модифицировал мой settings.py так, чтобы
'ENGINE': 'mssql',
Но я все еще получаю эту ошибку
django.core.exceptions.ImproperlyConfigured: 'mssql' isn't an available database backend or couldn't be imported. Check the above exception. To use one of the built-in backends, use 'django.db.backends.XXX', where XXX is one
of:
'mysql', 'oracle', 'postgresql', 'sqlite3'
У меня была похожая проблема при использовании Flask. Решение было следующим:
- Создайте файл с именем
odbcinst.iniс содержимым
[FreeTDS] Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
- В файле
requirements.txtдолжна быть рабочая версия mssql и pyodbc.
Например :
mssql==1.0.1
pyodbc==4.0.31
А конфигурация сервера имеет:
SQLALCHEMY_BINDS = { 'my_database': "mssql+pyodbc://{}:{}@{}?driver=FreeTDS".format( os.getenv("database_user"), os.getenv("database_password"), os.getenv("database_host") )}
И наконец
Dockerfileможет быть что-то вроде этого:FROM python:3.9.8-slim [...other staff here...] COPY odbcinst.ini /etc/ [...other staff here...]
Надеемся, что вы сможете преобразовать идиомы flask в ваше приложение django и заставить его работать. Это доставило мне немало разочарований, пока я пытался заставить его работать.
sudo apt-get install unixodbc-dev
Установлено unixodbc-dev
pip install pyodbc
pip install mssql-django
но теперь у меня другая проблема
django.db.utils.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 17 for SQL Server' : file not found (0) (SQLDriverConnect)")
и не имея ни малейшего представления о том, как решить эту проблему, я уже установил драйвер 17. Он просто не может его найти