diff --git a/warden3/warden_server/warden_server.py b/warden3/warden_server/warden_server.py index 24b8f9e6aa282776e144709188f88d43c27a8e09..90f62113958e9f6139e3f332789a81b22d6f61ce 100755 --- a/warden3/warden_server/warden_server.py +++ b/warden3/warden_server/warden_server.py @@ -817,11 +817,19 @@ class MySQL(ObjectBase): def purge_events(self, days): + affected = 0 try: - crs = self.query( - "DELETE FROM events WHERE received < DATE_SUB(CURDATE(), INTERVAL %s DAY)", - (days,)) + id_ = self.query( + "SELECT MAX(id) as id" + " FROM events" + " WHERE received < DATE_SUB(CURDATE(), INTERVAL %s DAY)", + (days,), + commit=True + ).fetchall()[0]["id"] + crs = self.query("DELETE FROM events WHERE id <= %s", (id_,)) affected = crs.rowcount + self.query("DELETE FROM event_category_mapping WHERE event_id <= %s", (id_,)) + self.query("DELETE FROM event_tag_mapping WHERE event_id <= %s", (id_,)) self.con.commit() except Exception as e: self.con.rollback()