module GlobalUid::MigrationExtension

Public Instance Methods

create_table(name, options = {}, &blk) click to toggle source
Calls superclass method
# File lib/global_uid/migration_extension.rb, line 5
def create_table(name, options = {}, &blk)
  uid_enabled = GlobalUid.enabled? && options[:use_global_uid] != false

  # rules for stripping out auto_increment -- enabled and not a "PK-less" table
  remove_auto_increment = uid_enabled && !(options[:id] == false)

  options.merge!(:id => false) if remove_auto_increment

  super(name, **options) { |t|
    t.column :id, "int(10) NOT NULL PRIMARY KEY" if remove_auto_increment
    blk.call(t) if blk
  }

  if uid_enabled
    id_table_name = options[:global_uid_table] || GlobalUid::Base.id_table_from_name(name)
    GlobalUid::Base.with_servers do |server|
      server.create_uid_table!(
        name: id_table_name,
        uid_type: options[:uid_type],
        start_id: options[:start_id]
      )
    end
  end

end
drop_table(name, options = {}) click to toggle source
Calls superclass method
# File lib/global_uid/migration_extension.rb, line 31
def drop_table(name, options = {})
  if GlobalUid.enabled? && options[:use_global_uid] == true
    id_table_name = options[:global_uid_table] || GlobalUid::Base.id_table_from_name(name)
    GlobalUid::Base.with_servers do |server|
      server.drop_uid_table!(name: id_table_name)
    end
  end
  super(name, **options)
end