addColumn method

List<String> addColumn(
  1. SchemaTable table,
  2. SchemaColumn column, {
  3. String? unencodedInitialValue,
})
inherited

Implementation

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

  if (unencodedInitialValue != null) {
    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;
}