printToConsole method

void printToConsole()

Prints the computed schema differences to the console.

The output format indicates additions with "++", removals with "--", and modifications with "-" for the previous state and "+" for the new state.

Implementation

void printToConsole() {
  for (var table in tables.added) {
    print('++ TABLE ${table.name}');
  }

  for (var table in tables.modified) {
    for (var column in table.columns.added) {
      print('++ COLUMN ${table.name}.${column.name}');
    }

    for (var column in table.columns.modified) {
      var prev = column.prev;
      var newly = column.newly;
      print(
        "-  COLUMN ${table.name}.${prev.name} ${prev.type} ${prev.isNullable ? 'NULL' : 'NOT NULL'}${prev.defaultValue != null ? ' DEFAULT ${prev.defaultValue}' : ''}",
      );
      print(
        "+  COLUMN ${table.name}.${newly.name} ${newly.type} ${newly.isNullable ? 'NULL' : 'NOT NULL'}${newly.defaultValue != null ? ' DEFAULT ${newly.defaultValue}' : ''}",
      );
    }

    for (var column in table.columns.removed) {
      print('-- COLUMN ${table.name}.${column.name}');
    }

    for (var constr in table.constraints.added) {
      print(
        "++ CONSTRAINT ON ${table.name} ${constr.toString().replaceAll(RegExp("[\n\\s]+"), " ")}",
      );
    }

    for (var constr in table.constraints.removed) {
      print(
        "-- CONSTRAINT ON ${table.name} ${constr.toString().replaceAll(RegExp("[\n\\s]+"), " ")}",
      );
    }

    for (var index in table.indexes.added) {
      print("++ ${index.statement(table.name).replaceAll(RegExp("[\n\\s]+"), " ")}");
    }

    for (var index in table.indexes.removed) {
      print("-- ${index.statement(table.name).replaceAll(RegExp("[\n\\s]+"), " ")}");
    }
  }

  for (var table in tables.removed) {
    print('-- TABLE ${table.name}');
  }
}