code: def build_schema_info(connection_alias):
      
      connection = get_valid_connection(connection_alias)
      ret = []
      with connection.cursor() as cursor:
          tables_to_introspect = connection.introspection.table_names(cursor, include_views=_include_views())
  
          for table_name in tables_to_introspect:
              if not _include_table(table_name):
                  continue
              td = []
              table_description = connection.introspection.get_table_description(cursor, table_name)
              for row in table_description:
                  column_name = row[0]
                  try:
                      field_type = connection.introspection.get_field_type(row[1], row)
                  except KeyError as e:
                      field_type = 'Unknown'
                  td.append((column_name, field_type))
              ret.append((table_name, td))
      return ret
docs: Construct schema information via engine-specific queries of the tables in the DB.
  
          :return: Schema information of the following form, sorted by db_table_name.
              [
                  ("db_table_name",
                      [
                          ("db_column_name", "DbFieldType"),
                          (...),
                      ]
                  )
              ]