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