The differences between two schemas.
Source
SchemaDifference differenceFrom(Schema schema) { var actualSchema = schema; var differences = new SchemaDifference() ..expectedSchema = this ..actualSchema = actualSchema; for (var expectedTable in tables) { var actualTable = actualSchema[expectedTable.name]; if (actualTable == null) { differences.differingTables.add(new SchemaTableDifference() ..actualTable = null ..expectedTable = expectedTable); } else { var diff = expectedTable.differenceFrom(actualTable); if (diff.hasDifferences) { differences.differingTables.add(diff); } } } differences.differingTables.addAll(actualSchema.tables .where((t) => this[t.name] == null) .map((unexpectedTable) { return new SchemaTableDifference() ..actualTable = unexpectedTable ..expectedTable = null; })); return differences; }