繁体   English   中英

Django 1.5 Mysql 5.5(InnoDb)事务未回滚,发生异常

[英]Django 1.5 Mysql 5.5(InnoDb) transaction not rollback in exception

我在Ubuntu 14.04上使用Django 1.5 Mysql 5.5(InnoDb)。 我在create方法中创建多个对象,

    @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_manually和savepoints的方法,但是没有任何效果。 任何帮助或见解将不胜感激。 提前致谢。

 @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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM