AsyncPipe; table schemata; migrations; File logging
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2021-07-25 09:15:01 -05:00
parent e86cf420df
commit fcce28081b
42 changed files with 3139 additions and 56 deletions

View File

@@ -1,10 +1,11 @@
import {Inject, Singleton} from '../../di'
import {Container, Inject, Singleton} from '../../di'
import {DatabaseService} from '../DatabaseService'
import {PostgresConnection} from '../connection/PostgresConnection'
import {ErrorWithContext} from '../../util'
import {Unit} from '../../lifecycle/Unit'
import {Config} from '../../service/Config'
import {Logging} from '../../service/Logging'
import {MigratorFactory} from '../migrations/MigratorFactory'
/**
* Application unit responsible for loading and creating database connections from config.
@@ -12,13 +13,16 @@ import {Logging} from '../../service/Logging'
@Singleton()
export class Database extends Unit {
@Inject()
protected readonly config!: Config;
protected readonly config!: Config
@Inject()
protected readonly dbService!: DatabaseService;
protected readonly dbService!: DatabaseService
@Inject()
protected readonly logging!: Logging;
protected readonly logging!: Logging
@Inject('injector')
protected readonly injector!: Container
/**
* Load the `database.connections` config and register Connection instances for each config.
@@ -28,6 +32,9 @@ export class Database extends Unit {
const connections = this.config.get('database.connections')
const promises = []
// Register the migrator factory
this.injector.registerFactory(this.injector.make(MigratorFactory))
for ( const key in connections ) {
if ( !Object.prototype.hasOwnProperty.call(connections, key) ) {
continue