#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, может помочь следующая проблема.
Комментарии:
1. Я думаю, это не очень полезно. Я это уже видел. В любом случае спасибо за подсказку