class Mv::Core::Migration::Base

Constants

SUPPORTED_METHODS

Attributes

operations_factory[R]
operations_list[R]

Public Class Methods

new() click to toggle source
# File lib/mv/core/migration/base.rb, line 20
def initialize()
  @operations_list = Mv::Core::Migration::Operations::List.new
  @operations_factory = Mv::Core::Migration::Operations::Factory.new()
end

Public Instance Methods

add_column(table_name, column_name, opts) click to toggle source
# File lib/mv/core/migration/base.rb, line 57
def add_column table_name, column_name, opts
  return unless opts.present?
  
  unless disabled_validations?
    operation = operations_factory.create_operation(:add_column, table_name, column_name, opts)
    operations_list.add_operation(operation)
  end
end
execute() click to toggle source
# File lib/mv/core/migration/base.rb, line 35
def execute
  if operations_list.present?
    Mv::Core::Services::CreateMigrationValidatorsTable.new.execute
    
    constraints_loader = Mv::Core::Services::LoadConstraints.new(operations_list.tables)

    old_constraints = constraints_loader.execute

    operations_list.execute()

    new_constraints = constraints_loader.execute

    constraints_comparizon = Mv::Core::Services::CompareConstraintArrays.new(old_constraints, new_constraints)
                                                                             .execute

    Mv::Core::Services::SynchronizeConstraints.new(constraints_comparizon[:added], 
                                                   constraints_comparizon[:updated], 
                                                   constraints_comparizon[:deleted])
                                              .execute
  end
end
with_suppressed_validations() { || ... } click to toggle source
# File lib/mv/core/migration/base.rb, line 66
def with_suppressed_validations
  disable_validations!
  yield
  enable_validations!
end

Private Instance Methods

disable_validations!() click to toggle source
# File lib/mv/core/migration/base.rb, line 84
def disable_validations!
  @disabled_validations = true
end
disabled_validations?() click to toggle source
# File lib/mv/core/migration/base.rb, line 80
def disabled_validations?
  !!@disabled_validations
end
enable_validations!() click to toggle source
# File lib/mv/core/migration/base.rb, line 88
def enable_validations!
  @disabled_validations = false
end