Class: DohDb::DatabaseCreator

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

Constant Summary collapse

MIGRATE_TABLE_DEF =
"CREATE TABLE migrate (migrated_at DATETIME NOT NULL, name CHAR(50) NOT NULL, sql_applied TEXT NOT NULL)"

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of DatabaseCreator.



12
13
14
15
16
# File 'lib/dohmysql/database_creator.rb', line 12

def initialize(sqlfiles_directory = nil, connector = nil)
  @sqlfiles_directory = sqlfiles_directory || DohDb.sql_files_path
  @connector = connector || DohDb.connector_instance
  @include_scripts = true
end

Instance Method Details

#create_all_databases(drop_first, include_migrates) ⇒ Object



26
27
28
29
# File 'lib/dohmysql/database_creator.rb', line 26

def create_all_databases(drop_first, include_migrates)
  dbh = get_handle('')
  Dir.directories(@sqlfiles_directory).each {|elem| create_one_database(dbh, elem, elem, drop_first, include_migrates)}
end

#create_database(dbname, drop_first, include_migrates) ⇒ Object



18
19
20
# File 'lib/dohmysql/database_creator.rb', line 18

def create_database(dbname, drop_first, include_migrates)
  create_one_database(get_handle(''), dbname, dbname, drop_first, include_migrates)
end

#create_database_copy(dest_db, source_db, drop_first, include_migrates) ⇒ Object



22
23
24
# File 'lib/dohmysql/database_creator.rb', line 22

def create_database_copy(dest_db, source_db, drop_first, include_migrates)
  create_one_database(get_handle(''), dest_db, source_db, drop_first, include_migrates)
end

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



31
32
33
34
35
36
# File 'lib/dohmysql/database_creator.rb', line 31

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

#exclude_scriptsObject



38
39
40
41
# File 'lib/dohmysql/database_creator.rb', line 38

def exclude_scripts
  @include_scripts = false
  self
end