Module: DBGeni::Initializer::Sybase

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

Class Method Summary collapse

Class Method Details

.initialize(db_connection, config) ⇒ Object

[View source]

5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/dbgeni/initializers/sybase.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(1100) not null,
                            migration_type   varchar(20)   not null,
                            migration_state  varchar(20)   not null,
                            start_dtm        datetime      null,
                            completed_dtm    datetime      null
                         )")
  db_connection.execute("create unique index #{config.db_table}_uk1 on #{config.db_table} (sequence_or_hash, migration_name, 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)
[View source]

20
21
22
23
24
25
26
27
28
29
# File 'lib/dbgeni/initializers/sybase.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("select name from sysobjects where name = \?", config.db_table.downcase)
  if 0 == results.length
    false
  else
    true
  end
end