Class: DohDb::DatabaseCreator

Inherits:
Object
  • Object
show all
Defined in:
lib/doh/mysql/database_creator.rb

Instance Method Summary collapse

Constructor Details

#initialize(data_directory = nil, connector = nil) ⇒ DatabaseCreator

Returns a new instance of DatabaseCreator.



10
11
12
13
14
# File 'lib/doh/mysql/database_creator.rb', line 10

def initialize(data_directory = nil, connector = nil)
  @data_directory = data_directory || File.join(DohApp::home, 'database')
  @connector = connector || DohDb::connector_instance
  @include_scripts = true
end

Instance Method Details

#create_all_databases(drop_first = false) ⇒ Object



25
26
27
28
# File 'lib/doh/mysql/database_creator.rb', line 25

def create_all_databases(drop_first = false)
  dbh = get_nodb_handle
  Dir.directories(@data_directory).each {|elem| create_one_database(dbh, elem, elem, drop_first)}
end

#create_database(dbname, drop_first = false) ⇒ Object



16
17
18
# File 'lib/doh/mysql/database_creator.rb', line 16

def create_database(dbname, drop_first = false)
  create_one_database(get_nodb_handle, dbname, dbname, drop_first)
end

#create_database_copy(dest_db, source_db, drop_first = false) ⇒ Object



20
21
22
23
# File 'lib/doh/mysql/database_creator.rb', line 20

def create_database_copy(dest_db, source_db, drop_first = false)
  create_one_database(get_nodb_handle, dest_db, source_db, drop_first)
  DohDb::link_database_types(dest_db, source_db)
end

#create_tables(database, drop_first, *table_and_view_names) ⇒ Object



30
31
32
33
34
35
# File 'lib/doh/mysql/database_creator.rb', line 30

def create_tables(database, drop_first, *table_and_view_names)
  @connector.database = database
  views, tables = table_and_view_names.flatten.sort.partition {|name| File.exist?(sql_filename(database, 'views', name))}
  tables.each {|name| create_base_table(database, name, drop_first)}
  views.each {|name| create_view(database, name, drop_first)}
end

#exclude_scriptsObject



37
38
39
40
# File 'lib/doh/mysql/database_creator.rb', line 37

def exclude_scripts
  @include_scripts = false
  self
end