Class: Gitlab::ImportExport::Group::RelationTreeRestorer

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/import_export/group/relation_tree_restorer.rb

Direct Known Subclasses

Project::RelationTreeRestorer

Instance Method Summary collapse

Constructor Details

#initialize(user:, shared:, relation_reader:, members_mapper:, object_builder:, relation_factory:, reader:, importable:, importable_attributes:, importable_path:) ⇒ RelationTreeRestorer

rubocop:disable Metrics/ParameterLists



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/gitlab/import_export/group/relation_tree_restorer.rb', line 7

def initialize( # rubocop:disable Metrics/ParameterLists
  user:,
  shared:,
  relation_reader:,
  members_mapper:,
  object_builder:,
  relation_factory:,
  reader:,
  importable:,
  importable_attributes:,
  importable_path:
)
  @user = user
  @shared = shared
  @importable = importable
  @relation_reader = relation_reader
  @members_mapper = members_mapper
  @object_builder = object_builder
  @relation_factory = relation_factory
  @reader = reader
  @importable_attributes = importable_attributes
  @importable_path = importable_path
end

Instance Method Details

#restoreObject



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/gitlab/import_export/group/relation_tree_restorer.rb', line 31

def restore
  Gitlab::Database.all_uncached do
    ActiveRecord::Base.no_touching do
      update_params!

      BulkInsertableAssociations.with_bulk_insert(enabled: bulk_insert_enabled) do
        create_relations!
      end
    end
  end

  # ensure that we have latest version of the restore
  @importable.reload # rubocop:disable Cop/ActiveRecordAssociationReload

  true
rescue StandardError => e
  @shared.error(e)
  false
end