diff --git a/containers/backupchecks/src/backend/app/main/routes_settings.py b/containers/backupchecks/src/backend/app/main/routes_settings.py index 29e4cb9..bbcd119 100644 --- a/containers/backupchecks/src/backend/app/main/routes_settings.py +++ b/containers/backupchecks/src/backend/app/main/routes_settings.py @@ -243,6 +243,15 @@ def settings_jobs_delete_orphaned(): {"job_ids": job_ids}, ) + # Unlink mails from jobs before deleting jobs + # mail_messages.job_id references jobs.id + _safe_execute( + text("UPDATE mail_messages SET job_id = NULL WHERE job_id IN :job_ids").bindparams( + bindparam("job_ids", expanding=True) + ), + {"job_ids": job_ids}, + ) + # Delete all orphaned jobs (runs/objects are cascaded via ORM relationships) for job in orphaned_jobs: db.session.delete(job)