Как вы реализуете @commit_manually
в Django 1.8?Ручная фиксация в Django 1.8
Я пытаюсь обновить код Django 1.5 для работы с Django 1.8, и по какой-то причудливой причине в Django 1.6 был удален декоратор commit_manually
без прямой замены. Мой процесс выполняет итерацию по тысячам записей, поэтому он не может полностью обернуть весь процесс в одной транзакции без нехватки памяти, но для повышения производительности по-прежнему необходимо сгруппировать некоторые записи в транзакции. Для этого у меня был метод, завернутый с @commit_manually, который назывался transaction.commit() каждые N итераций.
Я не могу точно сказать из docs, но это все еще поддерживается. Мне просто нужно позвонить set_autocommit(False)
вместо того, чтобы иметь удобный декоратор. Это верно?
спасибо, работает как шарм! Но я предпочитаю использовать rollback вместо commit после вызова функции, а также вызывать функцию внутри try, кроме блока. – VahidM