Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/lfs_objects_project.rb')
-rw-r--r--app/models/lfs_objects_project.rb12
1 files changed, 11 insertions, 1 deletions
diff --git a/app/models/lfs_objects_project.rb b/app/models/lfs_objects_project.rb
index e5632ff2842..bf6d1394569 100644
--- a/app/models/lfs_objects_project.rb
+++ b/app/models/lfs_objects_project.rb
@@ -21,9 +21,19 @@ class LfsObjectsProject < ApplicationRecord
scope :project_id_in, ->(ids) { where(project_id: ids) }
scope :lfs_object_in, -> (lfs_objects) { where(lfs_object: lfs_objects) }
+ def self.link_to_project!(lfs_object, project)
+ # We can't use an upsert here because there is no uniqueness constraint:
+ # https://gitlab.com/gitlab-org/gitlab/-/issues/347466
+ self.safe_find_or_create_by!(lfs_object_id: lfs_object.id, project_id: project.id) # rubocop:disable Performance/ActiveRecordSubtransactionMethods
+ end
+
+ def self.update_statistics_for_project_id(project_id)
+ ProjectCacheWorker.perform_async(project_id, [], [:lfs_objects_size]) # rubocop:disable CodeReuse/Worker
+ end
+
private
def update_project_statistics
- ProjectCacheWorker.perform_async(project_id, [], [:lfs_objects_size])
+ self.class.update_statistics_for_project_id(project_id)
end
end