Получение 'настройки. Базы данных неправильно настроены. Пожалуйста, укажите ошибку ИМЯ - PullRequest
0 голосов
/ 06 января 2020

Я использую Django для подключения к локальной базе данных. Ранее база данных размещалась на Azure. Строка подключения, которую я использовал в настройках Django ранее, была следующей:

для sql базы данных Azure

DATABASES = {
   'default': {
      'ENGINE': 'sql_server.pyodbc',
      'NAME': 'DatabaseName', #notrealname
      'USER': 'username',
       'PASSWORD': 'password',
       'HOST': 'sql-django-uat.database.windows.net', #notreal
       'PORT': '1433',
       'OPTIONS': {
        'driver': 'ODBC Driver 13 for SQL Server',
        'MARS_Connection': 'True',
       }

После переноса базы данных эта строка не работает. Я продолжаю получать «Время ожидания входа истекло».

Но замена «ИМЯ» на «БАЗА ДАННЫХ» работает. Пример, приведенный ниже -

DATABASES = {
   'default': {
      'ENGINE': 'sql_server.pyodbc',
      'DATABASE': 'DatabaseName', #notrealname
      'USER': 'username',
       'PASSWORD': 'password',
       'HOST': 'on-prem.local',
       'PORT': '1433',
       'OPTIONS': {
        'driver': 'ODBC Driver 13 for SQL Server',
        'MARS_Connection': 'True',
       }

Мое веб-приложение попадает на страницу входа. Но после того, как я войдите в систему, я получаю сообщение об ошибке: 'Неправильно сконфигурировано в / login /

settings.DATABASES неправильно настроено. Пожалуйста, укажите значение NAME.'

Может кто-нибудь сказать мне, как решить эту проблему? I следует упомянуть, что оставив поле "NAME" пустым, вы получите ту же ошибку. Большое спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 08 января 2020

From the Azure SQL database, settings.py должен быть:

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'mydb',
        'USER': 'user@myserver',
        'PASSWORD': 'password',
        'HOST': 'myserver.database.windows.net',
        'PORT': '',

        'OPTIONS': {
            'driver': 'ODBC Driver 13 for SQL Server',
        },
    },
}

# set this to False if you want to turn off pyodbc's connection pooling
DATABASE_CONNECTION_POOLING = False

USER : String. Имя пользователя базы данных в формате «пользователь» (локальный) или «user@server» (Azure SQL База данных). Если не указан, то будет использоваться MS Integrated Security.

Ссылка: django -pyodb c - azure 2.1.0.0

Для локального использования SQL сервер, конфигурация базы данных:

DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'HOST': '(LocalDB)\ProjectLocalDB',
        'PORT': '',
        'NAME': 'my_db',
        'USER': 'my_user',
        'PASSWORD': 'my_password',
        'OPTIONS': {
            'driver': 'ODBC Driver 13 for SQL Server',
        },
    },
}

Вот два урока, я думаю, вы можете научиться у них проверять, что вы что-то упустили:

  1. Как использовать Django с SQL Сервер LocalDB : Этот пост был протестирован с Microsoft SQL Server 2017, Django 1.11.x и 2.x. Пакеты pyodb c и django -pyodb c - azure будут использоваться для подключения Django к SQL Серверу. Версия django -pyodb c - azure должна соответствовать вашей версии Django.
  2. Django и MS SQL Сервер : новый python module / library - это django-pyodbc-azure, который поддерживает Django 2.0 и более низкие версии, такие как Django 1.11.

Надеюсь, это поможет.

0 голосов
/ 06 января 2020
DATABASES = {
   'default': {
      'ENGINE': 'sql_server.pyodbc',
      'NAME': 'DatabaseName', #notrealname
      'USER': '<replace with on-premise DB Username>',
       'PASSWORD': '<replace with on-premise DB password>',
       'HOST': '<replace with database URL of on-premise DB URL>',
       'PORT': '1433',
       'OPTIONS': {
        'driver': 'ODBC Driver 13 for SQL Server',
        'MARS_Connection': 'True',
       }
...