Ошибка связывания Django с MSSQL: драйвер базы данных не поддерживает современные типы данных

#python #sql-server #django

#питон #sql-сервер #django

Вопрос:

Я пытался связать свою базу данных mssql с Django. Я использую Windows 10 на своем компьютере. Когда я запускаю сервер Django, никаких проблем не возникает. Однако, когда я хочу использовать InspectDB , я получаю эту ошибку:

     File "C:ProgramDataAnaconda3libsite-packagessql_serverpyodbcbase.py", line 365, in init_connection_state
            "The database driver doesn't support modern datatime types.")
django.core.exceptions.ImproperlyConfigured: The database driver doesn't support modern datatime types.
 

Мои настройки Django выглядят следующим образом:

 DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'HOST': 'my_host',
        'PORT': '1433',
        'NAME': 'database_name',
        'OPTIONS': {
            'driver': 'SQL Server',
            'extra_params': "Persist Security Info=False;server=my_host"
        },
    },
}
 

Я действительно не понимаю эту идею двигателя. Тем не менее, я пробовал другие двигатели, но ни один из них не работал. При запуске сервера появляется сообщение об ошибке. С помощью этого движка не возникает ошибка при запуске сервера, но он выдает мне вышеупомянутую ошибку, когда я хочу запустить: python manage.py inspectdb

любой взгляд был бы очень признателен.

Комментарии:

1. Может быть, это помогает? github.com/michiya/django-pyodbc-azure/issues/161 . Какую версию pyodbc вы используете и какую версию Django?

2. django-pyodbc-azure: версии 2.1 и Django 2.1

3. а сам pyodbc?

4. pyodbc: 4.0.25. Я пытаюсь переключиться на другой движок и получаю сообщение об ошибке входа для пользователя

5. какая ОС? Если linux, вы уже установили драйверы sql server odbc?

Ответ №1:

В общем, если вы используете mssql в Linux, вам придется установить драйверы sql server odbc. Вам придется сделать то же самое на клиентах Windows, но это немного проще. Как только у вас будут установлены собственные драйверы, обновите DRIVER параметр, чтобы быть ODBC Driver 17 for SQL Server .

Комментарии:

1. Я сделал это, и теперь я получаю: django.db.utils. Ошибка интерфейса: (‘28000’, «[28000] [ Microsoft] [Драйвер ODBC 17 для SQL Server] [SQL Server] Ошибка входа в систему для пользователя ‘EMEA \ kmoh’. (18456) (SQLDriverConnect); [28000] [Microsoft] [Драйвер ODBC 17 для SQL Server] Недопустимое соединениестроковый атрибут (0); [28000] [Microsoft] [Драйвер ODBC 17 для SQL Server] [SQL Server] Ошибка входа для пользователя ‘EMEA \ kmoh’. (18456); [28000] [ Microsoft][Драйвер ODBC 17 для SQL Server]Недопустимый атрибут строки подключения (0)»)

2. Если я выполняю простой запрос, чтобы получить что-то из Django, он работает просто отлично. То же имя пользователя. Я использую Windows 10, как упоминалось выше.

3. Установите параметры USER и PASSWORD в настройках. Словарь баз ДАННЫХ.

Ответ №2:

Если вы используете django-pyodbc-azure 2.0, может помочь следующая проблема.

https://github.com/michiya/django-pyodbc-azure/issues/142

Комментарии:

1. Я думаю, это не очень полезно. Я это уже видел. В любом случае спасибо за подсказку