run method

Future<void> run(
  1. List<String> args
)

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!');
  }
}