class Diary::Migrator
Attributes
db[R]
Public Class Methods
new(db)
click to toggle source
# File lib/diary-ruby/database/migrator.rb, line 48 def initialize(db) @db = db.database end
Public Instance Methods
migrate!()
click to toggle source
# File lib/diary-ruby/database/migrator.rb, line 52 def migrate! exists = false db.execute( "SELECT name FROM sqlite_master WHERE type='table' AND name='versions';" ) do |row| if row exists = true end end if !exists db.execute(INITIALIZE) end MIGRATION_VERSIONS.each do |version| exists = false on_date = nil db.execute( "select rowid, migrated_at from versions WHERE version = '#{version}'" ) do |row| if row exists = true on_date = row[1] end end if !exists Diary.debug("UPDATING DATABASE TO VERSION #{ version }") if MIGRATIONS[version].is_a?(Array) MIGRATIONS[version].each do |statement| db.execute(statement) end else db.execute(MIGRATIONS[version]) end db.execute("INSERT INTO versions VALUES ('#{version}', strftime('%Y-%m-%dT%H:%M:%S+0000'));") else Diary.debug("AT #{ version } SINCE #{ on_date }") end end end