Module: Octopus::Migration::ClassMethods

Defined in:
lib/octopus/migration.rb

Instance Method Summary collapse

Instance Method Details

#shardsObject



41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/octopus/migration.rb', line 41

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 || [:master]
end

#using(*args) ⇒ Object



26
27
28
29
30
31
# File 'lib/octopus/migration.rb', line 26

def using(*args)
  return self unless connection.is_a?(Octopus::Proxy)

  self.current_shard = args
  self
end

#using_group(*groups) ⇒ Object



33
34
35
36
37
38
39
# File 'lib/octopus/migration.rb', line 33

def using_group(*groups)
  return self unless connection.is_a?(Octopus::Proxy)

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