author
postNo
status
thumbnail
description
category
tags
createdAt
updatedAt
시작하기에 앞서
이 글은 NestJS 프로젝트에서 어떻게 Multiple 로 Database에 연결하는지에 대해 설명한다.
개발하다보면 종종 MySQL 을 여러곳에 연결해야하는 경우가 생기곤 한다.
<a href="https://docs.nestjs.com/techniques/database#multiple-databases" target="_blank">NestJS 공식문서</a>를 참고하여 작성하였다.
DB 연결에 대한 설정
// module
NestJS 에서는 위와같이 Module의 imports에 TypeOrmModule.forRoot 를 사용하여 데이터베이스의 연결 정보를 설정할 수 있다.
여기서 Database 연결을 추가하고 싶으면 다음과 같이 추가해주면 된다.
여기서 중요한것은 여러개 연결중에 반드시 1개의 default 설정이 있어야 한다.
(혹은 name을 비워두면 default가 된다)
Default Connection을 사용한 DB 연결
default 설정을 사용한 연결이라면 Module에 특별히 설정해줄게 없다. 아무 설정 하지않으면 default 연결을 사용한다.
SubDBConnection 로 연결
default가 아닌 특정 이름의 DB 에 연결하기 위해서는 Module의 엔티티 설정 부분에 connection의 name 을 명시해준다.
여기서 바뀐점은
imports: [TypeOrmModule.forFeature([CustomerLog], 'SubDBConnection')], 이 부분이다. entity 와 함께 어떤 connection을 사용할지 name을 지정해준다.마지막으로 Repository 주입받는 코드에
@InjectRepository(CustomerLogEntity, 'SubDBConnection') 이와같이 connection 이름을 지정해준다.이 기록이 도움이 되었길 바란다.