将django pyodbc与python manage.py dbshell/loaddata一起使用时出现问题
我无法通过python manage.py dbshell/loaddata连接到SQL Server数据库 我在Ubuntu上安装了FreeTDS、unixODBC、pyodbc(3.0.7)和django pyodbc,从这里开始: 我可以成功运行syncdb和South迁移。但是,当我尝试运行dbshell或loaddata时,会出现以下错误:将django pyodbc与python manage.py dbshell/loaddata一起使用时出现问题,python,django,pyodbc,django-pyodbc,Python,Django,Pyodbc,Django Pyodbc,我无法通过python manage.py dbshell/loaddata连接到SQL Server数据库 我在Ubuntu上安装了FreeTDS、unixODBC、pyodbc(3.0.7)和django pyodbc,从这里开始: 我可以成功运行syncdb和South迁移。但是,当我尝试运行dbshell或loaddata时,会出现以下错误: [IM002][unixODBC][Driver Manager]Data source name not found, and no defa
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
我可以使用isql和tsql从命令行进行连接。你知道我遗漏了什么吗?所以,我找到了问题所在 如果要使用dbshell或loaddata,则需要使用命名DSN,而不仅仅是主机。我在/etc/freetds.conf、/etc/odbcinst.ini和/etc/odbc.ini中正确地设置了这个,所以tsql和isql都正常工作 我在settings.py中使用了这个默认数据库:
'ENGINE': 'django_pyodbc',
'NAME': 'db_name',
'USER': 'user_name',
'PASSWORD': 'pw',
'HOST': 'hostname.domain.com,1433',
'PORT': '1433',
'OPTIONS': {
'host_is_server': True,
'autocommit': True,
'unicode_results': True,
'extra_params': 'tds_version=7.2'
},
我不得不把它改成:
'ENGINE': 'django_pyodbc',
'NAME': 'db_name',
'USER': 'user_name',
'PASSWORD': 'pw',
'PORT': '1433',
'OPTIONS': {
'host_is_server': True,
'dsn': 'dsn_name',
'autocommit': True,
'unicode_results': True,
'extra_params': 'tds_version=7.2'
},
您会注意到第一个(坏的)示例使用“主机”,而第二个(工作的)示例在“选项”下使用“dsn”。我将TDS版本从8.0更改为7.2,每页:-我还可以确认这在SQL Server 2012和2014上有效。