Class: SwitchDb::Command::Store

Inherits:
Base
  • Object
show all
Defined in:
lib/switch_db/command/store.rb

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from SwitchDb::Command::Base

Instance Method Details

#run(name:, database_names: [], force: false) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/switch_db/command/store.rb', line 6

def run(name:, database_names: [], force: false)
  reference = SwitchDb::Reference.new(name: name, database_names: database_names)
  duplicated = @reference_set.references.key?(reference.name)

  FileUtils.mkdir_p(reference.full_path)

  reference.database_paths.each do |database_name, database_path|
    next if !force && duplicated && !overwrite?(reference)

    SwitchDb::Database.current_database.dump_database(database_name, database_path)
    puts "Stored database a '#{database_name}'"
  end

  @reference_set.add_reference(reference)
end