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},
|
{"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)
|
# Delete all orphaned jobs (runs/objects are cascaded via ORM relationships)
|
||||||
for job in orphaned_jobs:
|
for job in orphaned_jobs:
|
||||||
db.session.delete(job)
|
db.session.delete(job)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user