2016-12-07 3 views
1

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

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

Версии:

  • Джанго == 1,7
  • pyodbc == 3.0.10
  • Джанго-pyodbc == 1.0.1
  • FreeTDS v1.00.21
  • UnixODBC v2.3.4
+0

Какой тип 'django-pyodbc' вы используете? Их довольно много. Я нашел, что наиболее активно поддерживается, а функция - 'django-pyodbc-azure', которая работает для SQL Server * или * Azure. Я использую его с SQL Server 2008 до 2014 года. – FlipperPA

ответ

1

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

pip install django-pyodbc-azure<1.8 

django-pyodbc-azure матчи это номер версии на Джанго, так что вы хотите последнюю/величайшую версию от 1,7 ветви (таким образом, < 1,8).

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

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

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

+1

Спасибо, я тестирую это сейчас. Будет опубликован снова через несколько минут. – aensm

+0

'django-pyodbc-azure' поддерживает' bulk_insert' и передает мои другие тесты тоже. Кажется, работает лучше, чем другая вилка 'django-pyodbc' – aensm

Смежные вопросы