NestJS, TypeORM의 typeorm.ts에서 autoLoadEntities: true와 entities: []의 공존
안녕하세요.
TypeORM 마이그레이션 실습에서 아래와 같은 typeorm.ts 파일을 작성했습니다.
import { registerAs } from '@nestjs/config';
import { DataSource, DataSourceOptions } from 'typeorm';
const config = {
type: 'postgres',
host: `${process.env.DB_HOST || 'localhost'}`,
port: parseInt(`${process.env.DB_PORT || '5432'}`, 10),
username: `${process.env.DB_USERNAME || 'test'}`,
password: `${process.env.DB_PASSWORD || 'test'}`,
database: `${process.env.DB_DATABASE || 'inflearn'}`,
entities: ['dist/**/**/*.entity{.ts,.js}'],
migrations: ['dist/migrations/*{.ts,.js}'],
autoLoadEntities: true,
synchronize: false,
};
export default registerAs('typeorm', () => config);
export const connectionSource = new DataSource(config as DataSourceOptions);
이 때, autoLoadEntities: true 항목이 있음에도, entities: [] 항목이 있어야 할 필요가 있나요? 없어도 코드 동작에 차이가 없는 것인가요?
앞선 강의에서 autoLoadEntities: true 인 경우, entities: []를 따로 설정하지 않아도 된다는 내용이 있었던 것 같아서 헷갈립니다.
감사합니다.
답변 1
0
안녕하세요! 좋은 질문 감사합니다 😊
결론부터 말씀드리면,
✅ autoLoadEntities: true를 사용하는 경우, entities는 NestJS 애플리케이션 내에서 실행할 때는 생략 가능합니다.
❗ 하지만 typeorm CLI나 DataSource를 사용하는 마이그레이션 실행 시에는 entities가 필수입니다.
이유 설명
autoLoadEntities: true는 NestJS 런타임 환경에서만 작동합니다.
TypeOrmModule.forFeature()로 등록된 엔티티들을 자동으로 감지합니다.
이는 NestJS의 DI 컨테이너를 활용하기 때문에 NestJS 앱 실행 시에만 적용됩니다.
반면, typeorm CLI나 DataSource를 직접 사용할 때는 Nest 컨텍스트가 없기 때문에,
const connectionSource = new DataSource(config);이 config에 entities 배열이 명시적으로 있어야 마이그레이션이 정상 작동합니다.
결론적으로
autoLoadEntities: true → NestJS 앱 실행 시 유용
entities: ['dist/**/*.entity{.ts,.js}'] → 마이그레이션 및 CLI 명령 실행 시 필수
따라서 autoLoadEntities: true와 entities: [...]를 함께 사용하는 것이 실전에서는 안전한 조합입니다. 특히 저희처럼 typeorm 마이그레이션을 사용하고 있다면 entities를 생략하지 않아야 정상동작을 합니다. 이해 되셨을까요?
알파벤티지 sleep(5) 관련 문의
0
7
0
env 파일을 제대로 작성한 후에도 사이트에 연결할 수 없습니다.
0
9
0
실전 계좌에서 운영하고 계신 분 계신가요?
1
21
2
샘플데이터 요청
1
26
2
api.basic-server.com
0
35
2
클로드
0
38
2
HTTPS 인증서
0
41
2
pip install -r requirements.txt
0
44
2
11장 미션에 이메일 남기는걸 누락했어요.
0
32
1
자료를 다운로드후 압축을 풀때 오류납니다.
0
37
2
명령 프롬프트
0
34
2
Github repo Front/Backend 분리 이유가 궁금합니다.
1
30
2
claude에 지시하는 방식 관련
0
38
1
HTTPS 인증서 받는 부분 알려주세요
0
53
2
소스코드즘 부탁드립니다.
0
42
1
어렵네요
0
51
1
db연결이 다되었는데 tables에 posts 테이블이 안생겨요
0
104
2
SQL Sheell
0
70
1
PostRepository 구현
0
70
1
Nest.js와 레이어드 아키텍처
0
115
1
TypeORM 마이그레이션
0
114
2
터미널에서 자동완성 되는건 어떤 프로그램인가요?
0
378
2
module에서 import, export, provider, controller..
0
150
2
슬랙채널 가입이 안됩니다.
0
374
2





