registerConnectionsFromConfig function
Future<OrmConnectionHandle>
registerConnectionsFromConfig({
- required Directory root,
- required OrmProjectConfig config,
- ConnectionManager? manager,
- ModelRegistry? registry,
- String? targetConnection,
Registers every entry from config with ConnectionManager.defaultManager.
Returns the handle for targetConnection after the matching driver callback
registers the tenant.
Implementation
Future<OrmConnectionHandle> registerConnectionsFromConfig({
required Directory root,
required OrmProjectConfig config,
ConnectionManager? manager,
ModelRegistry? registry,
String? targetConnection,
}) async {
final connectionManager = manager ?? ConnectionManager.defaultManager;
final modelRegistry = registry ?? ModelRegistry();
final selectedTarget = (targetConnection ?? config.connectionName).trim();
OrmConnectionHandle? targetHandle;
for (final entry in config.connections.entries) {
final connectionName = _connectionNameForDefinition(root, entry.value);
if (connectionManager.isRegistered(connectionName)) {
if (entry.key != selectedTarget) continue;
await connectionManager.unregister(connectionName);
}
final handler = DriverRegistry.driver(entry.value.driver.type);
final handle = await handler(
root: root,
manager: connectionManager,
registry: modelRegistry,
connectionName: connectionName,
definition: entry.value,
);
if (entry.key == selectedTarget) {
targetHandle = handle;
}
}
return targetHandle ??
(throw StateError('Connection $selectedTarget was not registered.'));
}