Add migration to backfill user_group_member_roles for invited groups

What does this MR do and why?

  • Backfills data in user_group_member_roles for members that are in invited groups (i.e. group_group_links). In the previous MR, !200163 (merged) we backfilled data for direct memberships.
  • Only members that have are in invited groups -> either they have a member role, or the entire group has been invited with a member role -> will have a computed member role.

Database

main: == 20250825104745 AddTmpIndexOnMembersForActiveGroupMembers: migrating ========
main: -- transaction_open?(nil)
main:    -> 0.0000s
main: -- view_exists?(:postgres_partitions)
main:    -> 0.0005s
main: -- index_exists?(:members, :id, {:where=>"source_type = 'Namespace' AND state = 0 AND user_id IS NOT NULL AND requested_at IS NULL", :name=>:tmp_idx_members_for_active_group_members, :algorithm=>:concurrently})
main:    -> 0.0092s
main: -- execute("SET statement_timeout TO 0")
main:    -> 0.0004s
main: -- add_index(:members, :id, {:where=>"source_type = 'Namespace' AND state = 0 AND user_id IS NOT NULL AND requested_at IS NULL", :name=>:tmp_idx_members_for_active_group_members, :algorithm=>:concurrently})
main:    -> 0.0073s
main: -- execute("RESET statement_timeout")
main:    -> 0.0004s
main: == 20250825104745 AddTmpIndexOnMembersForActiveGroupMembers: migrated (0.0333s) 

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #520189 (closed)

Edited by Hinam Mehra

Merge request reports

Loading