summaryrefslogtreecommitdiff
path: root/app/models/project.rb
diff options
context:
space:
mode:
authorRubén Dávila <ruben@gitlab.com>2017-09-05 11:03:24 -0500
committerRubén Dávila <ruben@gitlab.com>2017-09-05 15:54:07 -0500
commit66cfb901c0df6eb5741721e901b66fbe82e183ce (patch)
tree89010ac7169b33eaae719fca19cc695eb7999a9d /app/models/project.rb
parentb8b4993805c620f6c29f3189b6e151c47854c5b7 (diff)
downloadgitlab-ce-66cfb901c0df6eb5741721e901b66fbe82e183ce.tar.gz
Optimize SQL queries used in Groups::GroupMembersController#create27374-groups-groupmemberscontroller-create-is-slow-due-to-sql
The following optimizations were performed: - Add new association to GroupMember and ProjectMember This new association will allow us to check if a user is a member of a Project or Group through a single query instead of two. - Optimize retrieving of Members when adding multiple Users
Diffstat (limited to 'app/models/project.rb')
-rw-r--r--app/models/project.rb1
1 files changed, 1 insertions, 0 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index 051c4c8e2ec..3d89dabd96f 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -144,6 +144,7 @@ class Project < ActiveRecord::Base
has_many :requesters, -> { where.not(requested_at: nil) },
as: :source, class_name: 'ProjectMember', dependent: :delete_all # rubocop:disable Cop/ActiveRecordDependent
+ has_many :members_and_requesters, as: :source, class_name: 'ProjectMember'
has_many :deploy_keys_projects
has_many :deploy_keys, through: :deploy_keys_projects