Defect #38966
closedAttachment custom fields not removed when issue is deleted
0%
Description
Hi
Attachments of an issue that are related to custom fields of type attachment, get not deleted after issue deletion.
Files
Updated by salman mp about 1 year ago
As a suggestion, this patch removed attachment custom values before customizable destroy.
Updated by Takenori TAKAKI about 1 year ago
- File fix-38966-remove_attachment_after_custom_value_deleted.patch fix-38966-remove_attachment_after_custom_value_deleted.patch added
I would like to propose a patch and test code to delete the Attachment after the custom value has been removed.
Updated by salman mp about 1 year ago
Takenori TAKAKI wrote in #note-3:
I would like to propose a patch and test code to delete the Attachment after the custom value has been removed.
Thanks. It's better than mine.
Updated by Takenori TAKAKI about 1 year ago
salman mp wrote in #note-4:
Takenori TAKAKI wrote in #note-3:
I would like to propose a patch and test code to delete the Attachment after the custom value has been removed.
Thanks. It's better than mine.
Thanks salman mp ! Looks like we both had the same idea around the same time. Really appreciate your feedback!
Updated by salman mp 11 months ago
Go MAEDA wrote in #note-6:
Thank you for posting the fix. Should we add a migration to delete orphaned objects?
Good idea. Because, if that orphaned objects not destroyed here, no one will destroy them in the future even by attachment:prune
rake task.
It this sufficient?
class RemoveOrphanedCustomValueAttachments < ActiveRecord::Migration[6.1]
def up
Attachment.where(container_type: "CustomValue").each do |a|
a.destroy! if a.container.nil?
end
end
def down
# no-op
end
end
Updated by Go MAEDA 6 months ago
- File 20240523085253_remove_orphaned_custom_value_attachments.rb 20240523085253_remove_orphaned_custom_value_attachments.rb added
salman mp, thank you for posting the migration file.
I think the attached migration is more efficient than iterating over all attachments returned by Attachment.where(container_type: "CustomValue")
.
Updated by Go MAEDA about 1 month ago
- File 38966-v3.patch 38966-v3.patch added
I have updated the patch:
- Added a migration to delete orphaned attachments
- Changed callback method names to be more descriptive
- Removed a loop from
destroy_custom_value_attachments
for improved efficiency
Updated by Takenori TAKAKI about 1 month ago
Go MAEDA
I have confirmed the patch.
The added migration, proper naming and loop removal would be good!
Updated by Go MAEDA 27 days ago
- Subject changed from Attachments custom fields not removed when issue deleted to Attachment custom fields not removed when issue is deleted
- Status changed from Confirmed to Closed
- Assignee set to Go MAEDA
- Resolution set to Fixed
Committed the fix in r23161. Thank you for your contribution.