django-pyodbc bulk_create 坏了
Posted
技术标签:
【中文标题】django-pyodbc bulk_create 坏了【英文标题】:django-pyodbc bulk_create is broken 【发布时间】:2016-12-07 19:30:29 【问题描述】:当使用django-pyodbc
后端调用bulk_create()
时,将为批处理中的每个对象运行一个插入语句。行为应该是每批运行一个插入语句。
这是一个错误,还是有办法改变这种行为?
版本:
django==1.7 pyodbc==3.0.10 django-pyodbc==1.0.1 FreeTDS v1.00.21 unixODBC v2.3.4【问题讨论】:
您使用的是哪个django-pyodbc
?那里有很多。我发现维护最积极和功能最完整的是django-pyodbc-azure
,它适用于 SQL Server 或 Azure。我将它与本地 SQL Server 2008 到 2014 一起使用。
【参考方案1】:
我打赌您使用的django-pyodbc
版本不支持批量插入。我建议使用django-pyodbc-azure
,您可以使用它进行安装:
pip install django-pyodbc-azure<1.8
django-pyodbc-azure
将其版本号与 Django 匹配,因此您需要 1.7 分支的最新/最佳版本(因此,
应该支持bulk_insert()
:
https://github.com/michiya/django-pyodbc-azure/blob/adc5d88a9928cecc0e9d33aacca301e0084ff824/sql_server/pyodbc/features.py#L15
我还建议升级到 Django 1.8(长期支持)或 1.10(当前版本),因为不再为 1.7 发布安全补丁和错误修复。祝你好运!
【讨论】:
谢谢,我现在正在测试这个。将在几分钟后再次发布。django-pyodbc-azure
确实支持bulk_insert
并且也通过了我的其他测试。似乎比django-pyodbc
的另一个分支工作得更好以上是关于django-pyodbc bulk_create 坏了的主要内容,如果未能解决你的问题,请参考以下文章
linux上的Django-pyodbc SQL Server/freetds服务器连接问题
从 django bulk_create 中选择/查询对象?