Fix foreign key constraint: delete mail_objects before mails
Added deletion of mail_objects before deleting mail_messages to avoid foreign key constraint violation. The mail_objects table has a foreign key to mail_messages. Complete deletion order: 1. Clean up auxiliary tables 2. Unlink mails from jobs 3. Delete mail_objects 4. Delete jobs (cascades to runs) 5. Delete mails Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
ff4942272f
commit
710aba97e4
@ -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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user