Nestjs - Typeorm 自定义连接名称

lev*_*per 3 connection node.js typeorm nestjs

我有一个 Nestjs 数据库模块,它工作得很好

@Module({
    imports: [
        TypeOrmModule.forRootAsync({
            useFactory: () => {
                return {
                    name: 'default', // <=== here
                    type: "mysql",
                    ...
                };
            },
        }),

        TypeOrmModule.forFeature(entities, 'default'), // <=== here
    ],
    exports: [TypeOrmModule],
})
export class DBModule {}
Run Code Online (Sandbox Code Playgroud)

如果我将连接名称更改为其他名称而不是“默认”、“测试”,则会收到错误

@Module({
    imports: [
        TypeOrmModule.forRootAsync({
            useFactory: () => {
                return {
                    name: 'test', // <=== here
                    type: "mysql",
                    ...
                };
            },
        }),

        TypeOrmModule.forFeature(entities, 'test'), // <=== here
    ],
    exports: [TypeOrmModule],
})
export class DBModule {}
Run Code Online (Sandbox Code Playgroud)
[Nest] 10746   - 05/15/2021, 5:55:34 PM   [ExceptionHandler] Nest can't resolve dependencies of the test_UserEntityRepository (?). Please make sure that the argument testConnection at index [0] is available in the TypeOrmModule context.

Potential solutions:
- If testConnection is a provider, is it part of the current TypeOrmModule?
- If testConnection is exported from a separate @Module, is that module imported within TypeOrmModule?
  @Module({
    imports: [ /* the Module containing testConnection */ ]
  })
Run Code Online (Sandbox Code Playgroud)

仅当我使用 TypeOrmModule.forRootAsync For TypeOrmModule.forRoot 如果有效时,错误接缝才会显示!

有没有其他方法来指示连接名称?我需要添加另一个连接,但由于此错误而无法执行此操作。真的很想使用“forRootAsync”

小智 9

按如下方式传递连接名称。

@Module({
imports: [
    TypeOrmModule.forRootAsync({
        name: 'test', // <=== here
        useFactory: () => {
            return {
                type: "mysql",
                ...
            };
        },
    }),

    TypeOrmModule.forFeature(entities, 'test'), // <=== here
    ],
    exports: [TypeOrmModule],
})
export class DBModule {}
Run Code Online (Sandbox Code Playgroud)

  • 似乎已被弃用。还有其他解决方案吗? (2认同)