Sha256: 4e574b707c3b69997d425efbfa9ff4ceeb5eada7bedbf4e557e1e8640520ea43

Contents?: true

Size: 1.31 KB

Versions: 12

Compression:

Stored size: 1.31 KB

Contents

require 'sequel'
require 'pact_broker/db/validate_encoding'
require 'pact_broker/db/migrate'
require 'pact_broker/db/migrate_data'
require 'pact_broker/db/version'

Sequel.datetime_class = DateTime

module PactBroker
  module DB
    MIGRATIONS_DIR = File.expand_path("../../../db/migrations", __FILE__)

    def self.connection= connection
      @connection = connection
    end

    def self.connection
      @connection
    end

    def self.run_migrations database_connection, options = {}
      Sequel.extension :migration
      Sequel::TimestampMigrator.new(database_connection, PactBroker::DB::MIGRATIONS_DIR, options).run
    end

    def self.run_data_migrations database_connection
      PactBroker::DB::MigrateData.(database_connection)
    end

    def self.is_current? database_connection, options = {}
      Sequel::TimestampMigrator.is_current?(database_connection, PactBroker::DB::MIGRATIONS_DIR, options)
    end

    def self.version database_connection
      PactBroker::DB::Version.call(database_connection)
    end

    def self.validate_connection_config
      PactBroker::DB::ValidateEncoding.(connection)
    end

    def self.set_mysql_strict_mode_if_mysql
      connection.run("SET sql_mode='STRICT_TRANS_TABLES';") if mysql?
    end

    def self.mysql?
      connection.adapter_scheme =~ /mysql/
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
pact_broker-2.61.0 lib/pact_broker/db.rb
pact_broker-2.60.1 lib/pact_broker/db.rb
pact_broker-2.60.0 lib/pact_broker/db.rb
pact_broker-2.59.2 lib/pact_broker/db.rb
pact_broker-2.59.1 lib/pact_broker/db.rb
pact_broker-2.59.0 lib/pact_broker/db.rb
pact_broker-2.58.3 lib/pact_broker/db.rb
pact_broker-2.58.2 lib/pact_broker/db.rb
pact_broker-2.58.0 lib/pact_broker/db.rb
pact_broker-2.57.0 lib/pact_broker/db.rb
pact_broker-2.56.1 lib/pact_broker/db.rb
pact_broker-2.56.0 lib/pact_broker/db.rb