Исключение вручную отменено в SQLite3, но не в MySQL с использованием Django ORM - PullRequest
0 голосов
/ 30 октября 2018
@transaction.atomic()
def insert_in_sample_table(request):
    try:
        with transaction.atomic():
            insert_obj = SampleTable1.objects.create(fld_id=1, fld_name='abc')
            raise Exception ("This is manual exception")
            insert_obj2 = SampleTable2.objects.create(fld_id=1, fld_name='xyz')
        return HttpResponse("SUCCESS")
    except Exception as e:
        return HttpResponse(str(e))

Здесь я добавил исключение, которое будет происходить все время. Мое единственное намерение - получить откат после того, как я вызову ручное исключение.

Первая транзакция успешно откатывается при использовании SQLite3 (база данных django по умолчанию).

Но транзакция не откатывается при использовании MySQL.

Использование базы данных InnoDB mysql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...