오늘은 많이 짧을 것 같은데(?)
타사에 메일을 보낼 일이 생겼는데, 한번 써서 보내보라는 이야기가 나왔다
흑흑 반도체는 메일 쓸 일이 없어요(ㅠㅠ)
그래서 조만간 리더님께 첨삭을 받아서 보내게 될 것 같다....
조만간은 아니고 내일은 써서 보내야한다(해결해야함...)
TypeORM v0.3에서 사용할 수 있는 DataSource로 개발을 하다가 버렸다.
이유는 정말 단순했다
테스트코드를 못짜겠다 -_-
일반적으로 과거 커넥션을 사용하는 것처럼 @InjectDataSource()같은 것은 괜찮겠는데
New DataSource()
로 시작해서 TypeOrmModule.forRootAsync
의 형태를 쓰지 않고 했더니 데이터소스를 연결하고 끊는 것에 대한 방법을 도무지 못찾겠더라 테스트에서(...)
그래서 그냥 기존에 쓰던 TypeOrmModule.forRootAsync
방식으로 선회를 했다.
이것저것 헷갈렸지만 결국은 별 어려운게 아니더라(...)
// 원래는 프로덕션과 테스트 데브환경에 따라서 다르게 실행이 되는 것이 맞다 !
@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
}),
TypeOrmModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
name: 'default', // 지정을 안해도 디폴트로 들어가는 것으로 알고 있다.
useFactory: async (configService: ConfigService) => {
return {
type: 'oracle',
host: configService.get('DEFAULT_DB_HOST'),
port: configService.get('DEFAULT_DB_PORT'),
sid: configService.get('DEFAULT_DB_SID'),
username: configService.get('DEFAULT_DB_USERNAME'),
password: configService.get('DEFAULT_DB_PASSWORD'),
entities: [__dirname + './../**/**.entity{.ts,.js}'],
dropSchema: false,
synchronize: false,
keepConnectionAlive: true,
};
},
}),
TypeOrmModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
name: 'second', // <- 두번째부터는 무조건 지정을 해줘야 접근을 할 수 있다.
useFactory: async (configService: ConfigService) => {
return {
type: 'mysql',
host: configService.get('SECOND_DB_HOST'),
port: configService.get('SECOND_DB_POST'),
username: 'configService.get('SECOND_DB_USERNAME'),
password: 'configService.get('SECOND_DB_PASSWORD'),
database: 'configService.get('SECOND_DB_DATABASE'),
entities: [__dirname + './../**/**.entity{.ts,.js}'],
dropSchema: false,
synchronize: false,
keepConnectionAlive: true,
};
},
}),
],
})
export class DatabaseModule {}
constructor(
@InjectDataSource('default')
private readonly defaultDataSource: DataSource,
@InjectDataSource('second')
private readonly secondDataSource: DataSource
) {}
정말....복잡하지 않고....단순했다
삽질을 내가 왜 저렇게 많이 하다가 해결방법을 못찾아서 왜 되돌아갔는지 정말 이해를 못할 따름이다(ㅠㅠ)
지금 이것저것 해야할 것이 너무 많아서 어지러운데......
프로세스에 대한 이해가 조금 필요한 파트도 있어서 쪼끔 더 어지럽다@_@
이번주는 조금 많이 정신없게 지나갈 것 같다..
11월 목표는 내일쓰던가 해야겠다 할게 넘만아