Django pyodbc 无法使用django pyodbc连接到旧数据库
我已安装django pyodbc并将我的数据库设置配置为:Django pyodbc 无法使用django pyodbc连接到旧数据库,django-pyodbc,Django Pyodbc,我已安装django pyodbc并将我的数据库设置配置为: 开发人员:WindowsXP(64位)、Python3.3、MDAC2.7 数据库:远程MSSQL 2008 DATABASES = { 'default': { 'ENGINE': 'django_pyodbc', 'HOST': 'my.server.com', 'PORT': '14330', 'USER': 'xxx500', 'PASSW
DATABASES = {
'default': {
'ENGINE': 'django_pyodbc',
'HOST': 'my.server.com',
'PORT': '14330',
'USER': 'xxx500',
'PASSWORD': 'passw',
'NAME': 'xxx500',
'OPTIONS': {
'host_is_server': True
},
}
}
(myProject) :\Users\...>python manage.py inspectdb
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "C:\Python33\lib\site-packages\django\core\management\__init__.py", line 399, in execute_from_command_line
utility.execute()
File "C:\Python33\lib\site-packages\django\core\management\__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Python33\lib\site-packages\django\core\management\base.py", line 242, in run_from_argv
self.execute(*args, **options.__dict__)
File "C:\Python33\lib\site-packages\django\core\management\base.py", line 285, in execute
output = self.handle(*args, **options)
File "C:\Python33\lib\site-packages\django\core\management\base.py", line 415, in handle
return self.handle_noargs(**options)
File "C:\Python33\lib\site-packages\django\core\management\commands\inspectdb.py", line 27, in handle_noargs
for line in self.handle_inspection(options):
File "C:\Python33\lib\site-packages\django\core\management\commands\inspectdb.py", line 40, in handle_inspection
cursor = connection.cursor()
File "C:\Python33\lib\site-packages\django\db\backends\__init__.py", line 157, in cursor
cursor = self.make_debug_cursor(self._cursor())
File "C:\Python33\lib\site-packages\django_pyodbc\base.py", line 280, in _cursor
autocommit=autocommit)
pyodbc.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect)')
(myProject):\Users\…>python manage.py inspectdb
回溯(最近一次呼叫最后一次):
文件“manage.py”,第10行,在
从命令行(sys.argv)执行命令
文件“C:\Python33\lib\site packages\django\core\management\\ uuuu init\uuuu.py”,第399行,从命令行执行
utility.execute()
文件“C:\Python33\lib\site packages\django\core\management\\uuuu init\uuuuu.py”,第392行,在execute中
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“C:\Python33\lib\site packages\django\core\management\base.py”,第242行,运行于\u argv
self.execute(*args,**选项._dict__;
文件“C:\Python33\lib\site packages\django\core\management\base.py”,第285行,执行
输出=self.handle(*args,**选项)
文件“C:\Python33\lib\site packages\django\core\management\base.py”,第415行,位于句柄中
返回self.handle\u noargs(**选项)
文件“C:\Python33\lib\site packages\django\core\management\commands\inspectdb.py”,第27行,在handle\u noargs中
对于在线自检,处理检查(选项):
文件“C:\Python33\lib\site packages\django\core\management\commands\inspectdb.py”,第40行,在handle\u inspection中
cursor=connection.cursor()
游标中的文件“C:\Python33\lib\site packages\django\db\backends\\ uuuuu init\uuuuuu.py”,第157行
cursor=self.make\u debug\u cursor(self.\u cursor())
文件“C:\Python33\lib\site packages\django\u pyodbc\base.py”,第280行,在\u游标中
自动提交=自动提交)
pyodbc.Error:('08001','[08001][Microsoft][ODBC SQL Server驱动程序][DBNETLIB]SQL Server不存在或访问被拒绝。(17)(SQLDriverConnect)'
我错过了什么?希望能得到一些反馈。
谢谢我做了以下更改: 从 到
得到了utf-8错误,需要注释掉django_pyodbc/base.py文件中的第364-367行。我认为这不是您真正想要使用的解决方案;修改django pyodbc的代码不是一个好主意。也就是说,请确保您使用的是django pyodbc的最新分支,当前可以在以下位置找到: 下面是settings.py的一个DB配置示例,我已经在以下平台上使用了它(针对Linux的w/FreeTDS/UnixODBC):
- 视窗7
- 在Vagrant下作为虚拟机的Ubuntu
- 用于本地开发的Mac OS/X
- RHEL 5+6
DATABASES = {
'default': {
'ENGINE': 'django_pyodbc',
'NAME': 'db_name',
'USER': 'db_user',
'PASSWORD': 'your_password',
'HOST': 'database.domain.com,1433',
'PORT': '1433',
'OPTIONS': {
'host_is_server': True,
'autocommit': True,
'unicode_results': True,
'extra_params': 'tds_version=8.0'
},
}
}
您需要将驱动程序添加到数据库后端
DATABASES = {
'default': {
.......
'OPTIONS': {
.......
'driver' : 'SQL Server',
.......
},
}
}
绳子。要使用的ODBC驱动程序。Windows上的默认值为“SQL Server”,其他平台上的默认值为“FreeTDS”
DATABASES = {
'default': {
'ENGINE': 'django_pyodbc',
'NAME': 'db_name',
'USER': 'db_user',
'PASSWORD': 'your_password',
'HOST': 'database.domain.com,1433',
'PORT': '1433',
'OPTIONS': {
'host_is_server': True,
'autocommit': True,
'unicode_results': True,
'extra_params': 'tds_version=8.0'
},
}
}
DATABASES = {
'default': {
.......
'OPTIONS': {
.......
'driver' : 'SQL Server',
.......
},
}
}