Defect #38966
closedAttachment custom fields not removed when issue is deleted
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 over 2 years ago
As a suggestion, this patch removed attachment custom values before customizable destroy.
Updated by Takenori TAKAKI over 2 years 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 over 2 years 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 over 2 years 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 Go MAEDA about 2 years ago
- Target version set to Candidate for next major release
Thank you for posting the fix. Should we add a migration to delete orphaned objects?
Updated by salman mp about 2 years 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 over 1 year 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 over 1 year ago
- Target version changed from Candidate for next major release to 6.0.0
Setting the target version to 6.0.0.
Updated by Go MAEDA over 1 year 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_attachmentsfor improved efficiency
Updated by Takenori TAKAKI over 1 year ago
Go MAEDA
I have confirmed the patch.
The added migration, proper naming and loop removal would be good!
Updated by Go MAEDA over 1 year 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.