2015-04-03 3 views
0

Я использую django 1.5 Mysql 5.5 (InnoDb) на ubuntu 14.04. Я создаю несколько объектов в методе создания,Django 1.5 Mysql 5.5 (InnoDb) транзакция не откат в исключении

@transaction.commit_on_success 
    def create(self, request, *args, **kwargs): 
     try: 
     v1 = Voc() 
     v1.save() 
     v2 = create_guest(v1) 
     except Exception: 
     logger.exception('Exception') 

Если есть какое-либо исключение в create_guest методы, он должен откатить объект v1, а также наблюдается такое поведение, когда оба Djnago и MySql находится на ту же машину, однако, если база данных находится на другом компьютере, откат объекта v1 не происходит. Я пробовал все, как commit_manual и savepoints, однако ничего не работает. Любая помощь или понимание будут высоко оценены. Спасибо заранее.

+0

Отформатируйте свой код, чтобы его было легче понять для людей. –

ответ

0
@transaction.commit_manually 
def create(self, request, *args, **kwargs): 
    try: 
     v1 = Voc() 
     v1.save() 
     v2 = create_guest(v1) 
     transaction.commit() 
    except Exception: 
    logger.exception('Exception')        
    transaction.rollback() 
+0

Это всегда хорошая идея, чтобы описать свой ответ немного, в отличие от простого размещения кода; не сказать, что это не очень хороший ответ, это может быть именно то, что нужно OP. –

+0

Я даже пробовал это, однако это не сработало для меня. Я не уверен, что это какая-то проблема с окружающей средой, или мне не хватает очень простой точки. – Rishi

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