Follow-up from "Add npm dependencies support": Cleanup leftovers in packages_dependencies table
The following discussion from !20549 (merged) should be addressed:
-
@stanhu started a discussion: (+4 comments) The only alternative I see is enqueuing a background job to check those orphaned
packages_dependencies
. Something like when destroying a package, a cleanup job is enqueued with all thepackages_dependencies
ids. The job walks through this list and destroy any orphan.I think we do something like that with https://gitlab.com/gitlab-org/gitlab/blob/c77bb71ca5944cdaa6d045ee821c29d809ef2624/app/workers/remove_unreferenced_lfs_objects_worker.rb#L10. Is that a simpler way of doing things?
Context
MR !20549 (merged) added two tables: packages_dependencies
and packages_dependency_links
. When a package is deleted, packages_dependency_links
rows are properly deleted but rows in packages_dependencies
are kept and they can become orphans.
These rows in packages_dependencies
should be cleaned in the same way as https://gitlab.com/gitlab-org/gitlab/blob/c77bb71ca5944cdaa6d045ee821c29d809ef2624/app/workers/remove_unreferenced_lfs_objects_worker.rb#L10.
We could re-use https://gitlab.com/gitlab-org/gitlab/-/blob/60af5d3438f155d80024405dd8df77b54fa0c0a8/app/workers/packages/cleanup_package_registry_worker.rb with a step for this.