setup method

  1. @override
Future<void> setup(
  1. Map<String, dynamic> databaseConfig
)

Implementation

@override
Future<void> setup(Map<String, dynamic> databaseConfig) async {
  try {
    final connectionManager = ConnectionManager();

    connectionManager.defaultConnection = databaseConfig['default'];

    Map<String, dynamic> connections = databaseConfig['connections'];

    _driver = databaseConfig['default'];
    await connectionManager.connect(
      _createDBConfig(connections[_driver]),
      _driver!,
    );

    _dbConnection = connectionManager.connection(_driver);

    if (_dbConnection == null) {
      stderr.writeln('A database must be specified.');
      exit(1);
    }

    _adapter = _createAdapter(_driver!);

    String migrationSql = _adapter!.getMigrationsTableSql();
    await _dbConnection!.execute(migrationSql);
  } on InvalidArgumentException catch (e) {
    stderr.writeln(e.message);
    exit(1);
  } catch (e) {
    stderr.write(e.toString());
    exit(1);
  }
}