class SP::Duh::Migrations::Migrator

Attributes

root[R]

Public Class Methods

new(pg_connection, migrations_root) click to toggle source
# File lib/sp/duh/migrations/migrator.rb, line 11
def initialize(pg_connection, migrations_root)
  @pg_connection = pg_connection
  @root = migrations_root
end

Public Instance Methods

connection() click to toggle source
# File lib/sp/duh/migrations/migrator.rb, line 9
def connection ; @pg_connection ; end
down(migration_name) click to toggle source
# File lib/sp/duh/migrations/migrator.rb, line 17
def down(migration_name) ; migrate(migration_name, :down) ; end
up(migration_name) click to toggle source
# File lib/sp/duh/migrations/migrator.rb, line 16
def up(migration_name) ; migrate(migration_name, :up) ; end

Private Instance Methods

migrate(migration_name, direction = :up) click to toggle source
# File lib/sp/duh/migrations/migrator.rb, line 21
def migrate(migration_name, direction = :up)
  _log("Migrating #{direction.to_s} #{migration_name}...", "Migrations::Migrator")
  run_all_on(File.join(root, migration_name, direction.to_s))
  _log("[DONE]", "Migrations::Migrator")
end
run_all_on(folder) click to toggle source
# File lib/sp/duh/migrations/migrator.rb, line 27
def run_all_on(folder)
  connection.transaction do |t|
    Dir.glob(File.join(folder, '*.sql')).sort.each do |step|
      name = File.basename(step, '.*')
      _log("  #{name}", "Migrations::Migrator")
      t.exec File.read(step)
    end
  end
end