class EY::Serverside::Slug::Migrator

Attributes

config[R]
shell[R]

Public Class Methods

new(config, shell) click to toggle source
# File lib/engineyard-serverside/slug/migrator.rb, line 13
def initialize(config, shell)
  @config = config
  @shell = shell
end

Private Class Methods

migrate(data = {}) click to toggle source
# File lib/engineyard-serverside/slug/migrator.rb, line 35
def self.migrate(data = {})
  new(data[:config], data[:shell]).call(data)
end

Public Instance Methods

call(data = {}) click to toggle source
# File lib/engineyard-serverside/slug/migrator.rb, line 18
def call(data = {})
  return Success(data) unless config.migrate?

  cmd = "PATH=#{paths.binstubs}:$PATH #{config.framework_envs} #{config.migration_command}"

  return Failure(
    data.merge(:error => "Could not migrate database")
  ) unless Dir.chdir(paths.active_release) {run_and_success?(cmd)}

  Success(data.merge(:migrated => true))
end

Private Instance Methods

paths() click to toggle source
# File lib/engineyard-serverside/slug/migrator.rb, line 31
def paths
  config.paths
end