В настоящее время я работаю над тем, чтобы взять внутренний веб-сайт asp.NET, написанный на C #, и переделывать его в веб-инфраструктуре Django.После определения всех текущих источников данных, используемых сайтом .NET, я приступил к настройке и тестированию своей способности подключаться к этим базам данных из среды Django.
- Платформа: Archlinux
- Версия Django: 1.3.1
- Версия Python: 2.7
Проблема: Всякий раз, когда я пытаюсь подключиться к любой базе данных, которая не определена как база данных по умолчанию, я не могу этого сделать.Кроме того, любая база данных, к которой я не могу подключиться, доступна только в том случае, если она определена как и не является значением по умолчанию.
Чтобы дополнительно проиллюстрировать этот момент, я приведу отредактированные примеры:
DATABASES = {
'default': {
'ENGINE': 'postgresql_psycopg2',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': '',
'HOST': '',
'PORT': '',
},
'mssql': {
'ENGINE': 'sql_server.pyodbc',
'DATABASE_ODBC_DSN': 'name_of_sql_server',
'DATABASE_NAME': 'Logs',
'DATABASE_USER': r'user_name',
'DATABASE_PASSWORD': 'password',
'DATABASE_OPTIONS': {
'driver': 'sql_server_driver',
'dsn': 'MSSQL_Logs',
},
}
}
Если я закомментирую первое определение базы данных по умолчанию и изменит имя базы данных mssql на default, я получу доступ к dbshell через:
manage.py dbshell
Однако, если япопробуйте получить прямой доступ к базе данных mssql, как это определено выше, с помощью:
manage.py dbshell mssql
Я получаю сообщение об ошибке:
TypeError: handle() takes exactly 1 argument (7 given)
Это почти так, как если бы он не мог правильно проанализировать определение,Поэтому мой вопрос в основном таков: неправильно ли я определяю базы данных при их объединении?