run method
Implementation
Future<void> run(List<String> args) async {
if (MigrationConnection().connection == null) {
stderr.writeln(
'Database connection not established',
);
exit(1);
}
if (args.contains('--fresh')) {
await _fresh(_migrations.values.toList());
} else if (args.contains('--install')) {
await _install();
} else if (args.contains('--refresh')) {
await _refresh(_migrations);
} else if (args.contains('--reset')) {
await _reset(_migrations);
} else if (args.contains('--rollback')) {
int? steps = args.contains('--steps')
? int.tryParse(args[args.indexOf('--steps') + 1])
: null;
int? batch = args.contains('--batch')
? int.tryParse(args[args.indexOf('--batch') + 1])
: null;
await _rollback(_migrations, steps: steps, batch: batch);
} else {
for (final migration in _migrations.values) {
await _runUp(migration.migrationName, migration.up);
}
stderr.writeln('✅ All migrations executed successfully!');
}
}