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(); }