The differences between two tables.
Source
SchemaTableDifference differenceFrom(SchemaTable table) { var actualTable = table; var differences = new SchemaTableDifference() ..expectedTable = this ..actualTable = actualTable; for (var expectedColumn in columns) { var actualColumn = actualTable[expectedColumn.name]; if (actualColumn == null) { differences.differingColumns.add( new SchemaColumnDifference() ..expectedColumn = expectedColumn ..actualColumn = null ); } else { var diff = expectedColumn.differenceFrom(actualColumn); if (diff.hasDifferences) { differences.differingColumns.add(diff); } } } differences.differingColumns.addAll(actualTable.columns .where((t) => this[t.name] == null) .map((unexpectedColumn) { return new SchemaColumnDifference() ..actualColumn = unexpectedColumn ..expectedColumn = null; })); return differences; }