Хотя команда mysql клиента describe
действительно использует ширину экрана (см. документы ), информация о схеме в вопросе OP, скорее всего, генерируется annontate_models gem get_schema_info
метод, который использует атрибут limit каждого столбца. А атрибут limit - это число байтов для: двоичных и: целочисленных столбцов (см. документы ).
Метод читает (см., Как последняя строка добавляет предел):
def get_schema_info(klass, header, options = {})
info = "# #{header}\n#\n"
info << "# Table name: #{klass.table_name}\n#\n"
max_size = klass.column_names.collect{|name| name.size}.max + 1
klass.columns.each do |col|
attrs = []
attrs << "default(#{quote(col.default)})" unless col.default.nil?
attrs << "not null" unless col.null
attrs << "primary key" if col.name == klass.primary_key
col_type = col.type.to_s
if col_type == "decimal"
col_type << "(#{col.precision}, #{col.scale})"
else
col_type << "(#{col.limit})" if col.limit
end
#...
end