2022-09-26 16:34:23 +00:00
|
|
|
import {Instantiable, FactoryProducer} from '../../di'
|
2021-07-25 14:15:01 +00:00
|
|
|
import {Migrator} from './Migrator'
|
|
|
|
import {DatabaseMigrator} from './DatabaseMigrator'
|
2022-09-26 16:34:23 +00:00
|
|
|
import {ConfiguredSingletonFactory} from '../../di/factory/ConfiguredSingletonFactory'
|
2021-07-25 14:15:01 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* A dependency injection factory that matches the abstract Migrator class
|
|
|
|
* and produces an instance of the configured session driver implementation.
|
|
|
|
*/
|
2021-09-21 18:42:06 +00:00
|
|
|
@FactoryProducer()
|
2022-09-26 16:34:23 +00:00
|
|
|
export class MigratorFactory extends ConfiguredSingletonFactory<Migrator> {
|
|
|
|
protected getConfigKey(): string {
|
|
|
|
return 'database.migrations.driver'
|
2021-07-25 14:15:01 +00:00
|
|
|
}
|
|
|
|
|
2022-09-26 16:34:23 +00:00
|
|
|
protected getDefaultImplementation(): Instantiable<Migrator> {
|
|
|
|
return DatabaseMigrator
|
2021-07-25 14:15:01 +00:00
|
|
|
}
|
|
|
|
|
2022-09-26 16:34:23 +00:00
|
|
|
protected getAbstractImplementation(): any {
|
|
|
|
return Migrator
|
2021-07-25 14:15:01 +00:00
|
|
|
}
|
|
|
|
}
|