listTables method

  1. @override
Future<List<String>> listTables()
override

List the database tables names.

Implementation

@override
Future<List<String>> listTables() async {
  var sqlAdapter = this.sqlAdapter!;

  var allRepositories = sqlAdapter.allRepositories().values.toList();

  var tables = allRepositories.map((e) => e.name).toList();

  var tablesSchemes = await tables
      .map((t) => sqlAdapter.getTableScheme(t))
      .toList()
      .resolveAll();

  var relationshipTables = tablesSchemes
      .whereNotNull()
      .expand((e) => e.tableRelationshipReference.values.expand((e) => e));

  var allTables = [
    ...tables,
    ...relationshipTables.map((e) => e.relationshipTable)
  ];

  return allTables;
}