discontinuedPackage connect_database has been discontinued.

ensureColumn method

Future<Result<Unit>> ensureColumn(
  1. String tableName,
  2. String columnName,
  3. String ddlType
)

Ensures that a column exists in the table. If it doesn't exist, executes ALTER TABLE ADD. ddlType e.g., "INT", "VARCHAR(100) NULL".

Implementation

Future<Result<Unit>> ensureColumn(String tableName, String columnName, String ddlType) async {
  final existsResult = await columnExists(tableName, columnName);

  if (existsResult.isError()) {
    return existsResult.map((_) => unit);
  }

  if (existsResult.getOrThrow()) {
    return Success.unit();
  }
  final query = 'ALTER TABLE $tableName ADD $columnName $ddlType';
  return (await driver.execute(query)).map((_) => unit);
}