The differences between two columns.
Source
SchemaColumnDifference differenceFrom(SchemaColumn column) {
var differences = new SchemaColumnDifference()
..expectedColumn = this
..actualColumn = column;
var symbols = [
#name,
#isIndexed,
#type,
#isNullable,
#autoincrement,
#isUnique,
#defaultValue,
#isPrimaryKey,
#relatedTableName,
#relatedColumnName,
#deleteRule
];
var expectedColumn = reflect(this);
var actualColumn = reflect(column);
symbols.forEach((sym) {
var expectedValue = expectedColumn.getField(sym).reflectee;
var actualValue = actualColumn.getField(sym).reflectee;
if (expectedValue is String) {
expectedValue = (expectedValue as String)?.toLowerCase();
actualValue = (actualValue as String)?.toLowerCase();
}
if (expectedValue != actualValue) {
differences.differingProperties.add(MirrorSystem.getName(sym));
}
});
return differences;
}