From ba01f720cc1a7a2392bfda1d3eddda3375902a8d Mon Sep 17 00:00:00 2001 From: Cédric Bonhomme Date: Fri, 28 Oct 2016 23:58:21 +0200 Subject: Rollback if the last query fails. --- src/web/controllers/abstract.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/web/controllers/abstract.py b/src/web/controllers/abstract.py index 5cebd39e..7e167722 100644 --- a/src/web/controllers/abstract.py +++ b/src/web/controllers/abstract.py @@ -94,6 +94,7 @@ class AbstractController: try: db.session.commit() except Exception as e: + db.session.rollback() logger.exception(str(e)) return obj @@ -103,13 +104,19 @@ class AbstractController: def update(self, filters, attrs): assert attrs, "attributes to update must not be empty" result = self._get(**filters).update(attrs, synchronize_session=False) - db.session.commit() + try: + db.session.commit() + except Exception as e: + db.session.rollback() return result def delete(self, obj_id): obj = self.get(id=obj_id) db.session.delete(obj) - db.session.commit() + try: + db.session.commit() + except Exception as e: + db.session.rollback() return obj def _has_right_on(self, obj): -- cgit