capture static method

Future<SchemaSnapshot> capture(
  1. SchemaDriver driver
)

Implementation

static Future<SchemaSnapshot> capture(SchemaDriver driver) async {
  final schemas = await driver.listSchemas();
  final tables = await driver.listTables();
  final views = await driver.listViews();
  final columns = <SchemaColumn>[];
  final indexes = <SchemaIndex>[];
  final foreignKeys = <SchemaForeignKey>[];
  for (final table in tables) {
    final schema = table.schema;
    columns.addAll(await driver.listColumns(table.name, schema: schema));
    indexes.addAll(await driver.listIndexes(table.name, schema: schema));
    foreignKeys.addAll(
      await driver.listForeignKeys(table.name, schema: schema),
    );
  }
  return SchemaSnapshot(
    schemas: schemas,
    tables: tables,
    views: views,
    columns: columns,
    indexes: indexes,
    foreignKeys: foreignKeys,
  );
}