Sha256: 107663f83c226d584b6714e869dcde1785ef76b5b749a1f475c929ad31c2e315

Contents?: true

Size: 1.22 KB

Versions: 1

Compression:

Stored size: 1.22 KB

Contents

module Octopus::Migration  
  def using(*args, &block)
    Octopus.config()

    args.each do |shard|
      if !ActiveRecord::Base.using(shard).connection.table_exists?(ActiveRecord::Migrator.schema_migrations_table_name())
        ActiveRecord::Base.using(shard).connection.initialize_schema_migrations_table 
      end
    end

    if args.size == 1
      self.connection().block = true
      self.connection().current_shard = args.first
    else
      self.connection().current_shard = args        
    end

    yield if block_given?

    return self
  end

  def using_group(*args)
    Octopus.config()

    args.each do |group_shard|
      shards = self.connection().instance_variable_get(:@groups)[group_shard] || []

      shards.each do |shard|
        if !ActiveRecord::Base.using(shard).connection.table_exists?(ActiveRecord::Migrator.schema_migrations_table_name())
          ActiveRecord::Base.using(shard).connection.initialize_schema_migrations_table 
        end
      end
    end

    if args.size == 1
      self.connection().block = true
      self.connection().current_group = args.first
    else
      self.connection().current_group = args
    end

    return self
  end
end


ActiveRecord::Migration.extend(Octopus::Migration)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ar-octopus-0.0.19 lib/octopus/migration.rb