Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将django pyodbc与python manage.py dbshell/loaddata一起使用时出现问题_Python_Django_Pyodbc_Django Pyodbc - Fatal编程技术网

将django pyodbc与python manage.py 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

我无法通过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 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上有效。