Can't retrieve comments for indexes when using

2019-09-15 07:38发布

问题:

I can retrieve comments for tables and columns by using SchemaCrawler and MySQL5.7, but it failed for the indexes' comments. This is an example:

1) Table definition

create table testtable(
  id bigint unsigned auto_increment,
  city_id varchar(256),
  person_id varchar(256),
  primary key(id) comment 'This is comment for the primary key',
  key idx1 (city_id, person_id) comment 'This is the comment for test index'
) comment='This is the comment for test table';

2) Java code

// jdbc:mysql://localhost:3306/testdb?useInformationSchema=true&useUnicode=true&characterEncoding=utf8
final Connection connection = ...;
final DatabaseSpecificOverrideOptions databaseSpecificOverrideOptions =
                        SchemaCrawlerUtility.matchDatabaseSpecificOverrideOptions(connection);

final SchemaCrawler schemaCrawler = new SchemaCrawler(connection, databaseSpecificOverrideOptions);

final SchemaCrawlerOptions options = new SchemaCrawlerOptions();
options.setSchemaInfoLevel(SchemaInfoLevelBuilder.maximum());
options.setTableInclusionRule(new IncludeAll());
options.setColumnInclusionRule(new IncludeAll());

final Catalog catalog = schemaCrawler.crawl(options);
final Collection<schemacrawler.schema.Table> tables = catalog.getTables();

for (schemacrawler.schema.Table t : tables) {
    System.out.println(t.getPrimaryKey().getRemarks());
    for (schemacrawler.schema.Index index : t.getIndexes()) {
        System.out.println(index.getRemarks());
    }
}

Is there anything that I should adjust ?

Thanks!

回答1:

Sorry, index comments are not supported for MySQL in SchemaCrawler 14.16.01. Please make sure that you include the us.fatehi:schemacrawler-mysql jar file on your classpath.

Sualeh Fatehi, SchemaCrawler