I'm looking in MicroORM features and I faced with strange (for me) case. If I do the following in the app.module.ts:
...MikroOrmModule.forRoot([
{
// https://github.com/mikro-orm/nestjs?tab=readme-ov-file#multiple-database-connections
contextName: 'sqlite',
registerRequestContext: false,
entities: [Barcode],
dbName: 'scanner_db.sqlite3',
driver: SqliteDriver,
debug: true,
},
{
contextName: 'mongo',
clientUrl:
'mongodb://root:dockercompose@mongo:27017/?retryWrites=true&w=majority',
registerRequestContext: false,
// allowGlobalContext: true,
entities: [Barcode2],
dbName: 'devcontainer',
driver: MongoDriver,
debug: true,
},
]),
My controller/service works fine, but if I want to read clientUrl and dbName from config then I'm doing this:
...MikroOrmModule.forRoot([
{
// https://github.com/mikro-orm/nestjs?tab=readme-ov-file#multiple-database-connections
contextName: 'sqlite',
registerRequestContext: false,
entities: [Barcode],
dbName: 'scanner_db.sqlite3',
driver: SqliteDriver,
debug: true,
},
]),
MikroOrmModule.forMiddleware(),
MikroOrmModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (configService: ConfigService) => ({
// https://github.com/mikro-orm/nestjs?tab=readme-ov-file#multiple-database-connections
contextName: 'mongo',
clientUrl: configService.getOrThrow<string>('MONGO_URI'),
registerRequestContext: false,
// allowGlobalContext: true,
entities: [Barcode2],
dbName: configService.getOrThrow<string>('MONGO_DB'),
driver: MongoDriver,
debug: true,
}),
}),