Sha256: 776bd3e6a340aab152a5312cd7365355f5e141f7de12901685bf6fcfc9adf379

Contents?: true

Size: 781 Bytes

Versions: 3

Compression:

Stored size: 781 Bytes

Contents

module Departure
  # Represents the 'DSN' argument of Percona's pt-online-schema-change
  # See https://www.percona.com/doc/percona-toolkit/2.0/pt-online-schema-change.html#dsn-options
  class DSN
    # Constructor
    #
    # @param database [String, Symbol]
    # @param table_name [String, Symbol]
    def initialize(database, table_name)
      @database = database
      @table_name = table_name
      @suffix = ENV.fetch('PERCONA_DSN_SUFFIX', nil)
    end

    # Returns the pt-online-schema-change DSN string. See
    # https://www.percona.com/doc/percona-toolkit/2.0/pt-online-schema-change.html#dsn-options
    def to_s
      "D=#{database},t=#{table_name}#{suffix.nil? ? nil : ',' + suffix}"
    end

    private

    attr_reader :table_name, :database, :suffix
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
departure-6.7.0 lib/departure/dsn.rb
departure-6.6.0 lib/departure/dsn.rb
departure-6.5.0 lib/departure/dsn.rb