diff options
Diffstat (limited to 'lib/gitlab/background_migration/link_lfs_objects.rb')
-rw-r--r-- | lib/gitlab/background_migration/link_lfs_objects.rb | 58 |
1 files changed, 1 insertions, 57 deletions
diff --git a/lib/gitlab/background_migration/link_lfs_objects.rb b/lib/gitlab/background_migration/link_lfs_objects.rb index 3131b5d5125..69c03f617bf 100644 --- a/lib/gitlab/background_migration/link_lfs_objects.rb +++ b/lib/gitlab/background_migration/link_lfs_objects.rb @@ -6,8 +6,6 @@ module Gitlab class LinkLfsObjects # Model definition used for migration class ForkNetworkMember < ActiveRecord::Base - include EachBatch - self.table_name = 'fork_network_members' def self.with_non_existing_lfs_objects @@ -25,62 +23,8 @@ module Gitlab end end - # Model definition used for migration - class Project < ActiveRecord::Base - include EachBatch - - self.table_name = 'projects' - - has_one :fork_network_member, class_name: 'LinkLfsObjects::ForkNetworkMember' - - def self.with_non_existing_lfs_objects - fork_network_members = - ForkNetworkMember.with_non_existing_lfs_objects - .select(1) - .where('fork_network_members.project_id = projects.id') - - where('EXISTS (?)', fork_network_members) - end - end - - # Model definition used for migration - class LfsObjectsProject < ActiveRecord::Base - include EachBatch - - self.table_name = 'lfs_objects_projects' - end - - BATCH_SIZE = 1000 - def perform(start_id, end_id) - forks = - Project - .with_non_existing_lfs_objects - .where(id: start_id..end_id) - - forks.includes(:fork_network_member).find_each do |project| - LfsObjectsProject - .select("lfs_objects_projects.lfs_object_id, #{project.id}, NOW(), NOW()") - .where(project_id: project.fork_network_member.forked_from_project_id) - .each_batch(of: BATCH_SIZE) do |batch| - execute <<~SQL - INSERT INTO lfs_objects_projects (lfs_object_id, project_id, created_at, updated_at) - #{batch.to_sql} - SQL - end - end - - logger.info(message: "LinkLfsObjects: created missing LfsObjectsProject for Projects #{forks.map(&:id).join(', ')}") - end - - private - - def execute(sql) - ::ActiveRecord::Base.connection.execute(sql) - end - - def logger - @logger ||= Gitlab::BackgroundMigration::Logger.build + # no-op as some queries times out end end end |