Draft: User mapping - Create relation contributors in Direct Transfer
What does this MR do and why?
This MR creates a new relation export file for user_contributions
. In order to export user contributions as a single relation, we need to cache all referenced user_ids
as they are exported during other relations. In order to do that, the UserContributionsExportWorker
was created to wait until all other exports finish before querying for Users with the cached user_ids
. That query is assigned to the exportable as user_contributions
, then passed to the existing RelationExportService
.
Because we can't accurately export user contributions until all other exports finish, we also can't create placeholder users on the import side with the right names and usernames. However, when it's time to import the user_contributions
, we can simply update existing Import::SourceUsers
and their placeholder users to have the right name, email and username if they've already been created. The import side would be handled in User mapping - Integration with Direct Transfer (#443557).
MR acceptance checklist
Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
How to set up and validate locally
Numbered steps to set up and validate the change are strongly suggested.
Run BulkImports::ExportService
locally and inspect the export file
Related to #454522