Django 1.6 предлагает @transaction.atomic
как часть ремонта в управлении транзакциями от 1.5.
У меня есть функция, которая вызывается командой управления Django, которая, в свою очередь, называется cron, т.е. никаких запросов HTTP-запроса при запуске транзакций в этом случае. Отрывок:
from django.db import transaction
@transaction.commit_on_success
def my_function():
# code here
В приведенном выше блоке кода commit_on_success
использует одну транзакцию для всей работы, выполненной в my_function
.
Выполняет ли замена @transaction.commit_on_success
на @transaction.atomic
одинаковое поведение? @transaction.atomic
docs state:
Атомность - определяющее свойство транзакций базы данных. атомное позволяет нам создать блок кода, в котором атомарность на база данных гарантирована. Если блок кода успешно завершены изменения, внесенные в базу данных. Если есть исключение, изменения откатываются.
Я считаю, что они приводят к такому же поведению; правильно?