首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用django-pyodbc连接到遗留数据库。

无法使用django-pyodbc连接到遗留数据库。
EN

Stack Overflow用户
提问于 2014-03-17 19:36:08
回答 3查看 682关注 0票数 0

我安装了django-pyodbc,并将我的数据库设置配置为:

  1. 开发: Windows (64位)、Python3.3、MDAC 2.7
  2. DB:远程MSSQL 2008 数据库={ 'default':{ 'ENGINE':'django_pyodbc','HOST':'my.server.com','PORT':'14330','USER':‘xxx500 500’,‘密码’:'passw','NAME':'xxx500',“选项”:{ 'host_is_server':True },}

我可以打电话到服务器,我可以通过第三方GUI Aqua database访问数据库-所以我知道没有防火墙问题的登录问题

当我试图运行这个命令来自省遗留数据库时,我得到了这个错误.

代码语言:javascript
复制
(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)')

我遗漏了什么?希望能得到一些反馈。谢谢

EN

回答 3

Stack Overflow用户

发布于 2014-03-18 11:35:44

我做了以下修改:

从…

代码语言:javascript
复制
DATABASES = {
'default': {
    'ENGINE': 'django_pyodbc',
    'HOST': 'my.server.com',
    'PORT': '14330',
    'USER': 'xxx500',
    'PASSWORD': 'passw',
    'NAME': 'xxx500',
    'OPTIONS': {
        'host_is_server': True
    },
}
}

代码语言:javascript
复制
DATABASES = {
'default': {
    ...
    'HOST': 'my.server.com,14330',
    ...
}
}

并获得utf-8错误,需要注释django_pyodbc/base.py文件中的第364-367行。

票数 0
EN

Stack Overflow用户

发布于 2014-05-07 20:35:27

我相信这并不是您想要使用的解决方案;修改django-pyodbc的代码不是一个好主意。尽管如此,请确保您使用的是django-pyodbc的最新分叉,目前可以在这里找到:

https://github.com/lionheart/django-pyodbc/

下面是一个用于settings.py的DB配置示例,我已经在以下平台(w/FreeTDS / UnixODBC for Linux)上工作:

  • Windows 7
  • Ubuntu作为Vagrant下的VM
  • 用于本地开发的Mac /X
  • 拉赫尔5+6

以下是配置:

代码语言:javascript
复制
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'
        },
    }
}
票数 0
EN

Stack Overflow用户

发布于 2018-05-08 08:38:27

您需要将驱动程序添加到数据库后端。

代码语言:javascript
复制
DATABASES = {
    'default': {
      .......
      'OPTIONS': {
       .......
       'driver' : 'SQL Server',
       .......
       },
    }
  }

绳子。要使用ODBC驱动程序。默认情况下,Windows上为“Server”,而其他平台上为"FreeTDS“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22463728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档