diff --git a/containers/backupchecks/src/backend/app/main/routes_settings.py b/containers/backupchecks/src/backend/app/main/routes_settings.py index bbcd119..9b5fd96 100644 --- a/containers/backupchecks/src/backend/app/main/routes_settings.py +++ b/containers/backupchecks/src/backend/app/main/routes_settings.py @@ -252,6 +252,17 @@ def settings_jobs_delete_orphaned(): {"job_ids": job_ids}, ) + # Delete mail_objects before deleting mails + # mail_objects.mail_message_id references mail_messages.id + if mail_message_ids: + from sqlalchemy import text, bindparam + _safe_execute( + text("DELETE FROM mail_objects WHERE mail_message_id IN :mail_ids").bindparams( + bindparam("mail_ids", expanding=True) + ), + {"mail_ids": mail_message_ids}, + ) + # Delete all orphaned jobs (runs/objects are cascaded via ORM relationships) for job in orphaned_jobs: db.session.delete(job)