[英]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.