Module: DBGeni::Initializer::Mysql

Defined in:
lib/dbgeni/initializers/mysql.rb

Class Method Summary collapse

Class Method Details

.initialize(db_connection, config) ⇒ Object


5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/dbgeni/initializers/mysql.rb', line 5

def self.initialize(db_connection, config)
  raise DBGeni::DatabaseAlreadyInitialized if self.initialized?(db_connection, config)
  db_connection.execute("create table #{config.db_table}
                         (
                            sequence_or_hash varchar(100) not null,
                            migration_name   varchar(4000) not null,
                            migration_type   varchar(20)   not null,
                            migration_state  varchar(20)   not null,
                            start_dtm        datetime,
                            completed_dtm    datetime
                         )")
  db_connection.execute("create unique index #{config.db_table}_uk1 on #{config.db_table} (sequence_or_hash, migration_name(500), migration_type)")
  db_connection.execute("create index #{config.db_table}_idx2 on #{config.db_table} (migration_name)")
end

.initialized?(db_connection, config) ⇒ Boolean

Returns:

  • (Boolean)

20
21
22
23
24
25
26
27
28
29
# File 'lib/dbgeni/initializers/mysql.rb', line 20

def self.initialized?(db_connection, config)
  # it is initialized if a table called dbgeni_migrations or whatever is
  # defined in config exists
  results = db_connection.execute("show tables like '#{config.db_table.downcase}'")
  if 0 == results.length
    false
  else
    true
  end
end