Skip to content

Add multiple MR assignees migration and background table population

What does this MR do?

  1. Add migration required for multiple assignees
  2. Add post-deployment migration which schedules batches background migrations to insert merge_request_assignees rows
  3. Add a after_save callback to keep merge_request_assignees in sync while the migrations doesn't finishes and the codebase is still not using the relation

EE-port https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/10411

Query generated on background migration

INSERT INTO merge_request_assignees (merge_request_id, user_id)
SELECT "merge_requests"."id",
       "merge_requests"."assignee_id"
FROM "merge_requests"
WHERE (NOT EXISTS
    (SELECT 1
     FROM merge_request_assignees
     WHERE (merge_request_assignees.merge_request_id = merge_requests.id) )
  AND ("merge_requests"."id" BETWEEN 1 AND 4)
  AND (assignee_id IS NOT NULL)

What are the relevant issue numbers?

Part of https://gitlab.com/gitlab-org/gitlab-ee/issues/2004

Does this MR meet the acceptance criteria?

- [ ] Changelog entry added, if necessary

Edited by Oswaldo Ferreira

Merge request reports