비동기
TypeOrmModule.forRootAsync({
useFactory: DefaultDbConfig
}),
TypeOrmModule.forRootAsync({
name: 'second_connection',
useFactory: SecondDbConfig
}),
import { TypeOrmModuleOptions } from '@nestjs/typeorm';
export const DefaultDbConfig = (): TypeOrmModuleOptions => ({
type: 'mysql',
host: process.env.DB1_HOST,
port: Number(process.env.DB1_PORT),
username: process.env.DB1_USERNAME,
password: process.env.DB1_PASSWORD,
database: process.env.DB1_DATABASE,
autoLoadEntities: true,
entities: [__dirname + '/**/*.entity.entity{.ts,.js}'],
logging: process.env.NODE_ENV == 'example',
synchronize: false,
retryAttempts: 1,
})
export const SecondDbConfig = () : TypeOrmModuleOptions => ({
type: 'mysql',
host: process.env.DB1_HOST,
port: Number(process.env.DB2_PORT),
username: process.env.DB2_USERNAME,
password: process.env.DB2_PASSWORD,
database: process.env.DB2_DATABASE,
autoLoadEntities: true,
entities: [__dirname + '/**/*.entity.entity{.ts,.js}'],
logging: process.env.NODE_ENV == 'example',
synchronize: false,
retryAttempts: 1,
})
@Module({
imports: [TypeOrmModule.forFeature(entities:
[example],dataSource:
'second_connection')],
controllers: [ExampleController],
providers: [ExampleService]
})
export class ExampleModule {
}
constructor(
@InjectRepository(Example, 'second_connection') private readonly exampleRepository: Repository<Example>,
{
}