List<String> addColumn(SchemaTable table, SchemaColumn column, { String unencodedInitialValue })

Source

List<String> addColumn(SchemaTable table, SchemaColumn column, {String unencodedInitialValue}) {
  var commands = <String>[];

  if (!column.isNullable && column.defaultValue == null) {
    if (unencodedInitialValue == null) {
      throw new SchemaException(
          "Attempting to addColumn to database that is not nullable, has no default value, and does not have unencodedInitialValue.");
    }

    column.defaultValue = unencodedInitialValue;
    commands.addAll([
      "ALTER TABLE ${table.name} ADD COLUMN ${_columnStringForColumn(column)}",
      "ALTER TABLE ${table.name} ALTER COLUMN ${_columnNameForColumn(column)} DROP DEFAULT"
    ]);
  } else {
    commands.addAll(["ALTER TABLE ${table.name} ADD COLUMN ${_columnStringForColumn(column)}"]);
  }

  if (column.isIndexed) {
    commands.addAll(addIndexToColumn(table, column));
  }

  if (column.isForeignKey) {
    commands.addAll(_addConstraintsForColumn(table.name, column));
  }

  return commands;
}