Как подключить Django к существующей БД Microsoft SQL Server, хранящейся в Azure?
Я создал Django API, подключенный к React frontend. Я пытаюсь подключить Django API к уже существующей базе данных mssql на Azure. Насколько я понимаю, мне нужно внедрить все существующие таблицы из базы данных в файл models.py. Если это не так, и я могу получить доступ к выбранным таблицам, пожалуйста, дайте мне знать.
Я установил pyodbc, djagno-pyodbc-azure и mssql-django.
В моем файле settings.py у меня есть данные:
DATABASES = {
'default': {
'ENGINE': 'mssql',
'NAME': 'DBNAME',
'USER': 'USERNAME',
'PASSWORD': 'PW',
'HOST' : 'tcp:dbname.database.windows.net',
'PORT': '1442',
'OPTIONS': {
'driver': 'ODBC Driver 13 for SQL Server',
}
},
}
Я пробовал удалять "tcp:" из хоста, я пробовал "sql_server.pyodbc" в качестве ENGINE. Я установил несколько других пакетов.
Когда я запускаю "python manage.py inspectdb > models.py" для импорта моделей существующей базы данных, я получаю либо пустой файл models.py, либо ошибку "django.db.utils.Error: ('01000'...". Чувствую себя немного в тупике и хотел узнать, есть ли у кого-нибудь какие-нибудь рекомендации.
Вам необходимо внести некоторые изменения в свою конфигурацию. USER
должен быть в формате <user>@<servername>
. А PORT
можно оставить пустым.
Наиболее полезным и рекомендуемым способом подключения приложения Django к базе данных Azure SQL Database является следующий django-puodbc-azure README для установки пакетов python pyodbc
& django-pyodbc-azure
и конфигурации settings.py
файла Django, как показано ниже:
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',
},
},
}
Кроме того, загрузите правильный драйвер ODBC, совместимый для подключения к Azure SQL Database.
Скачать с здесь