Dart code to upgrade expectedColumn to actualColumn.
Source
String generateUpgradeSource({List<String> changeList}) { if (actualColumn.isPrimaryKey != expectedColumn.isPrimaryKey) { throw new SchemaException("Cannot change primary key of '${expectedColumn.table.name}'"); } if (actualColumn.relatedColumnName != expectedColumn.relatedColumnName) { throw new SchemaException( "Cannot change ManagedRelationship inverse of '${expectedColumn.table.name}.${expectedColumn.name}'"); } if (actualColumn.relatedTableName != expectedColumn.relatedTableName) { throw new SchemaException("Cannot change type of '${expectedColumn.table.name}.${expectedColumn.name}'"); } if (actualColumn.type != expectedColumn.type) { throw new SchemaException("Cannot change type of '${expectedColumn.table.name}.${expectedColumn.name}'"); } if (actualColumn.autoincrement != expectedColumn.autoincrement) { throw new SchemaException( "Cannot change autoincrement behavior of '${expectedColumn.table.name}.${expectedColumn.name}'"); } var builder = new StringBuffer(); builder.writeln('database.alterColumn("${expectedColumn.table.name}", "${expectedColumn.name}", (c) {'); if (expectedColumn.isIndexed != actualColumn.isIndexed) { builder.writeln("c.isIndexed = ${actualColumn.isIndexed};"); } if (expectedColumn.isUnique != actualColumn.isUnique) { builder.writeln("c.isUnique = ${actualColumn.isUnique};"); } if (expectedColumn.defaultValue != actualColumn.defaultValue) { builder.writeln("c.defaultValue = \"${actualColumn.defaultValue}\";"); } if (expectedColumn.deleteRule != actualColumn.deleteRule) { builder.writeln("c.deleteRule = ${actualColumn.deleteRule};"); } if (expectedColumn.isNullable != actualColumn.isNullable) { builder.writeln("c.isNullable = ${actualColumn.isNullable};"); } if (expectedColumn.isNullable == true && actualColumn.isNullable == false && actualColumn.defaultValue == null) { builder.writeln("}, unencodedInitialValue: <<set>>);"); } else { builder.writeln("});"); } return builder.toString(); }