Returns Dart code to change expectedSchema to actualSchema.
Source
String generateUpgradeSource({List<String> changeList}) {
var builder = new StringBuffer();
var tablesToAdd = _differingTables
.where((diff) => diff.expectedTable == null && diff.actualTable != null)
.map((d) => d.actualTable)
.toList();
actualSchema.dependencyOrderedTables
.where((t) => tablesToAdd.map((toAdd) => toAdd.name).contains(t.name))
.forEach((t) {
changeList?.add("Adding table '${t.name}'");
builder.writeln(createTableSource(t));
});
var tablesToRemove = _differingTables
.where((diff) => diff.expectedTable != null && diff.actualTable == null)
.map((diff) => diff.expectedTable)
.toList();
expectedSchema.dependencyOrderedTables.reversed
.where((t) => tablesToRemove.map((toRemove) => toRemove.name).contains(t.name))
.forEach((t) {
changeList?.add("Deleting table '${t.name}'");
builder.writeln(deleteTableSource(t));
});
_differingTables.where((diff) => diff.expectedTable != null && diff.actualTable != null).forEach((tableDiff) {
var lines = tableDiff.generateUpgradeSource(changeList: changeList);
builder.writeln(lines);
});
return builder.toString();
}