Sha256: ef2e416f200c14f81ada8d5e8d1e792d81347d648a6f82939683e5ffbb48847f

Contents?: true

Size: 741 Bytes

Versions: 2

Compression:

Stored size: 741 Bytes

Contents

module SwitchDb
  module Command
    class Restore < Base
      attr_reader :reference

      def run(name:, **)
        reference = @reference_set.references[name.to_s]

        unless reference
          $stderr.puts("#{name} not exists")
          exit
        end

        database = SwitchDb::Database.current_database

        threads = reference.database_paths.map do |database_name, database_path|
          Thread.new do
            database.drop_database(database_name)
            database.create_database(database_name)
            database.import_database(database_name, database_path)
            puts "Restored database a '#{database_name}'"
          end
        end

        threads.each(&:join)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
switch_db-0.1.1 lib/switch_db/command/restore.rb
switch_db-0.1.0 lib/switch_db/command/restore.rb