renderAlterAddColumns method
List<String>
renderAlterAddColumns(
- String table,
- TableBlueprint changes, {
- String afterColumn = '',
- String beforeColumn = '',
override
Implementation
@override
List<String> renderAlterAddColumns(
String table,
TableBlueprint changes, {
String afterColumn = '',
String beforeColumn = '',
}) {
final statements = <String>[];
if (changes.columns.isNotEmpty) {
final required = <String>[];
final properties = <String, dynamic>{};
for (final col in changes.columns) {
properties[col.name] = _mongoBsonSchema(col);
if (!col.nullable) required.add(col.name);
}
statements.add(
jsonEncode({
'_vania_migration': 'addValidatorFields',
'collection': table,
'properties': properties,
if (required.isNotEmpty) 'required': required,
}),
);
}
for (final idx in changes.indexes) {
statements.add(
jsonEncode({
'_vania_migration': 'createIndex',
'collection': table,
'keys': {for (final c in idx.columns) c: 1},
'options': {
'name': idx.name,
if (idx.type == ColumnIndex.unique) 'unique': true,
},
}),
);
}
return statements;
}