Settings
- Node.js v18.14.0
- @nestjs/cli v9.4.2
- @nestjs/common v9.4.0
- @nestjs/core v9.4.0
- @nestjs/typeorm v9.0.1
- typeorm v0.3.15
- mysql2 v3.2.4
문제
TypeORM 의 entities 옵션을 다음과 같이 경로 기반 설정
entities: [__dirname + '/../**/*.entity{.ts,.js}']
+
webpack 등을 이용하여 entity 를 정의해놓은 파일 또한 번들링.
= 해당 파일을 찾지 못해 entity 정보를 불러오지 못하여 EntityMetadataNotFoundError 같은 오류가 발생.
해결
import 나 require 등을 통해 미리 entity 들을 load 해야 함.
(typeorm의 Entity 데코레이터로 인해 MetadataArgsStorage에 등록 됨)
import { getMetadataArgsStorage } from 'typeorm';
entities: getMetadataArgsStorage().tables.map((table) => table.target)