driverOverride method
ColumnBuilder
driverOverride(
- String driver, {
- ColumnType? type,
- String? sqlType,
- ColumnDefault? defaultValue,
- String? collation,
- String? charset,
Implementation
ColumnBuilder driverOverride(
String driver, {
ColumnType? type,
String? sqlType,
ColumnDefault? defaultValue,
String? collation,
String? charset,
}) {
if (type == null &&
sqlType == null &&
defaultValue == null &&
collation == null &&
charset == null) {
throw ArgumentError('At least one override value is required.');
}
if (type != null && sqlType != null) {
throw ArgumentError(
'Provide either a logical ColumnType or a raw sqlType string.',
);
}
if (sqlType != null && sqlType.trim().isEmpty) {
throw ArgumentError.value(sqlType, 'sqlType', 'must not be empty.');
}
final overrides = Map<String, ColumnDriverOverride>.from(
_definition.driverOverrides,
);
final merged = (overrides[driver] ?? const ColumnDriverOverride()).merge(
ColumnDriverOverride(
type: type,
sqlType: sqlType,
defaultValue: defaultValue,
collation: collation,
charset: charset,
),
);
overrides[driver] = merged;
_entry.updateDefinition(
_definition.copyWith(driverOverrides: Map.unmodifiable(overrides)),
);
return this;
}