我在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等所有内容,但是没有任何工作。 任何帮助或见解将受到高度赞赏。 提前谢谢。
答案 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()