Class: DbSubsetter::Importer

Inherits:
Object
  • Object
show all
Defined in:
lib/db_subsetter/importer.rb

Instance Method Summary collapse

Constructor Details

#initialize(filename, dialect = DbSubsetter::Dialect::Generic) ⇒ Importer

Returns a new instance of Importer.

Raises:

  • (ArgumentError)


6
7
8
9
10
11
# File 'lib/db_subsetter/importer.rb', line 6

def initialize(filename, dialect = DbSubsetter::Dialect::Generic)
  raise ArgumentError.new("invalid input file") unless File.exists?(filename)

  @data = SQLite3::Database.new(filename)
  @dialect = dialect
end

Instance Method Details

#importObject



21
22
23
24
25
26
27
# File 'lib/db_subsetter/importer.rb', line 21

def import
  @dialect.import do
    tables.each do |table|
      import_table(table)
    end
  end
end

#insert_batch_sizeObject



29
30
31
# File 'lib/db_subsetter/importer.rb', line 29

def insert_batch_size
  100 # more like 500 for mysql
end

#tablesObject



13
14
15
16
17
18
19
# File 'lib/db_subsetter/importer.rb', line 13

def tables
  all_tables = []
  @data.execute("SELECT name FROM tables") do |row|
    all_tables << row[0]
  end
  all_tables
end