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. Решение было следующим:

  1. Создайте файл с именем odbcinst.ini с содержимым
[FreeTDS]
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
  1. В файле requirements.txt должна быть рабочая версия mssql и pyodbc.

Например :

mssql==1.0.1
pyodbc==4.0.31
  1. А конфигурация сервера имеет:

    SQLALCHEMY_BINDS = {
    'my_database': "mssql+pyodbc://{}:{}@{}?driver=FreeTDS".format(
        os.getenv("database_user"), 
        os.getenv("database_password"), 
        os.getenv("database_host")
    )
    

    }

  2. И наконец 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. Он просто не может его найти

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