用于 Linux 上 Django 的 SQL Server 2008/2012 后端模块?

Posted

技术标签:

【中文标题】用于 Linux 上 Django 的 SQL Server 2008/2012 后端模块?【英文标题】:SQL Server 2008/2012 backend module for Django on Linux? 【发布时间】:2014-06-03 23:24:38 【问题描述】:

我是 Django 新手,我正在做一个需要使用 SQL Server 的项目。我已经广泛研究了将 Django 与 SQL Server 结合使用,似乎 django-pyodbc 是要走的路。在pydobc 页面上,它提到仅支持 SQL Server 2000 和 2005。但是,在提出的其他问题上,似乎 2008 得到了一些支持。

是否可以在 Linux 环境中将 Django 与 SQL Server 2012 一起使用?

请指点我正确的方向!谢谢!

【问题讨论】:

【参考方案1】:

Google 上的最高结果不是您想要使用的版本;它自 2011 年以来一直没有更新。这是一个活动的、更新的存储库,它支持到 2012 年(我将很快开始测试 2014 年):

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

如果您有任何问题,请告诉我,并查看已知问题;例如,连接时,您需要在选项中包含 'autocommit: true':

'OPTIONS': 
    'host_is_server': True,
    'dsn': 'sql14-dev.example.com',
    'autocommit': True,
    'unicode_results': True,
    'extra_params': 'tds_version=7.2'
,

【讨论】:

我最近改变了这个。最好指定确切的 TDS 版本:freetds.org/userguide/choosingtdsprotocol.htm 另外,我发现如果您想使用“python manage.py runshell”或“python manage.py loaddata [json file]”,您将必须设置 FreeTDS 和 UnixODBC DSN。我还可以确认这在 SQL Server 2012 和 2014 上正常工作。 只是跟进:我已经针对 SQL Server 2014 进行了测试,一切都与 SQL Server 2012 一样。

以上是关于用于 Linux 上 Django 的 SQL Server 2008/2012 后端模块?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SQL 的“IN”等字段上的数组过滤 django 查询集?

用于慢速 SQL 查询的 Django 日志过滤器

Django——连接sql server数据库

在 Linux 中,不同的 SQL 不适用于 UNNEST

在 Linux 中,不同的 SQL 不适用于 UNNEST

linux上的Django-pyodbc SQL Server/freetds服务器连接问题