class Pakyow::Data::Adapters::Sql::Runner

@api private

Public Class Methods

migration(&block) click to toggle source
# File lib/pakyow/data/adapters/sql/runner.rb, line 20
def self.migration(&block)
  Sequel.migration(&block)
end
new(connection, migration_path) click to toggle source
# File lib/pakyow/data/adapters/sql/runner.rb, line 9
def initialize(connection, migration_path)
  @connection, @migration_path = connection, migration_path
end

Public Instance Methods

disconnect!() click to toggle source
# File lib/pakyow/data/adapters/sql/runner.rb, line 13
def disconnect!
  @connection.disconnect
end
run!() click to toggle source
Calls superclass method
# File lib/pakyow/data/adapters/sql/runner.rb, line 17
def run!
  Pakyow.module_eval do
    unless singleton_class.instance_methods.include?(:migration)
      def self.migration(&block)
        Sequel.migration(&block)
      end
    end
  end

  # Allows migrations to be defined with the nice mapping, then executed with the Sequel type.
  #
  local_types = @connection.types
  @connection.adapter.connection.define_singleton_method :type_literal do |column|
    if column[:type].is_a?(Symbol)
      begin
        column[:type] = Data::Types.type_for(column[:type], local_types).meta[:database_type]
      rescue Pakyow::UnknownType
      end
    end

    super(column)
  end

  Sequel.extension :migration
  Sequel::Migrator.run(
    @connection.adapter.connection, @migration_path,
    allow_missing_migration_files: true
  )
end