django-pyodbc bulk_create не работает

При звонке bulk_create() с помощью django-pyodbc Бэкэнд, оператор вставки выполняется для каждого объекта в пакете. Поведение должно состоять в том, чтобы запустить один оператор вставки на пакет.

Это ошибка, или есть способ изменить это поведение?

Версии:

  • Джанго == 1.7
  • pyodbc == 3.0.10
  • Джанго-pyodbc == 1.0.1
  • FreeTDS v1.00.21
  • unixODBC v2.3.4

1 ответ

Решение

Готов поспорить, версия django-pyodbc вы используете не поддерживает массовую вставку. Я бы порекомендовал использовать django-pyodbc-azure, который вы можете установить с помощью:

pip install django-pyodbc-azure<1.8

django-pyodbc-azure он сопоставляет номера версий с Django, так что вам понадобится последняя / лучшая версия из ветки 1.7 (т. е. <1.8).

Должно поддерживать bulk_insert():

https://github.com/michiya/django-pyodbc-azure/blob/adc5d88a9928cecc0e9d33aacca301e0084ff824/sql_server/pyodbc/features.py

Я также рекомендовал бы обновить до Django 1.8 (долгосрочная поддержка) или 1.10 (текущий выпуск), так как исправления безопасности и исправления ошибок больше не выпускаются для 1.7. Удачи!

Другие вопросы по тегам