Fix foreign key constraint: unlink mails from jobs before deletion
Added UPDATE to set mail_messages.job_id = NULL before deleting jobs to avoid foreign key constraint violation. The mail_messages table has a foreign key to jobs, so we must unlink them first. Complete correct order: 1. Clean up auxiliary tables 2. Unlink mails from jobs (SET job_id = NULL) 3. Delete jobs (cascades to runs) 4. Delete mails Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
f332e61288
commit
ff4942272f
@ -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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user