Sha256: 18dc471210eb5ffa9fde16d619392b4e5eb76eea53d64706af0860f98f77d181

Contents?: true

Size: 580 Bytes

Versions: 2

Compression:

Stored size: 580 Bytes

Contents

module Gush
  class Migration
    def migrate
      return if migrated?

      up
      migrated!
    end

    def up
      # subclass responsibility
      raise NotImplementedError
    end

    def version
      self.class.version
    end

    def migrated?
      redis.sismember("gush.migration.schema_migrations", version)
    end

    private

    def migrated!
      redis.sadd("gush.migration.schema_migrations", version)
    end

    def client
      @client ||= Client.new
    end

    def redis
      Gush::Client.redis_connection(client.configuration)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
gush-4.1.0 lib/gush/migration.rb
gush-4.0.0 lib/gush/migration.rb