module GlobalUid::SchemaDumperExtension

Public Instance Methods

get_pk(table) click to toggle source
# File lib/global_uid/schema_dumper_extension.rb, line 19
def get_pk(table)
  if @connection.respond_to?(:pk_and_sequence_for)
    pk, _ = @connection.pk_and_sequence_for(table)
  elsif @connection.respond_to?(:primary_key)
    pk = @connection.primary_key(table)
  end
  pk
end
table(table, stream) click to toggle source
Calls superclass method
# File lib/global_uid/schema_dumper_extension.rb, line 4
def table(table, stream)
  super(table, io = StringIO.new)
  schema = io.string

  pk = get_pk(table)
  columns = @connection.columns(table)

  pkcol = columns.detect { |c| c.name == pk }
  use_global_uid = !(pkcol.extra =~ /auto/i)

  schema.sub!(/(create_table.*) do/, "\\1, use_global_uid: #{use_global_uid.inspect} do")
  stream.write(schema)
  stream
end