module Octopus::Migration::ClassMethods

Public Instance Methods

shards() click to toggle source
# File lib/octopus/migration.rb, line 44
def shards
  shards = Set.new

  if (groups = (current_group_specified ? current_group : Octopus.config[:default_migration_group]))
    Array.wrap(groups).each do |group|
      group_shards = connection.shards_for_group(group)
      shards.merge(group_shards) if group_shards
    end
  elsif (shard = current_shard)
    shards.merge(Array.wrap(shard))
  end

  shards.to_a.presence || [Octopus.master_shard]
end
using(*args) click to toggle source
# File lib/octopus/migration.rb, line 29
def using(*args)
  return self unless connection.is_a?(Octopus::Proxy)

  self.current_shard = args
  self
end
using_group(*groups) click to toggle source
# File lib/octopus/migration.rb, line 36
def using_group(*groups)
  return self unless connection.is_a?(Octopus::Proxy)

  self.current_group = groups
  self.current_group_specified = true
  self
end