본문 바로가기
Programming & Platform/NestJS

TypeORM 에러 해결, Entity Metadata Not Found

by 코드스니펫 2024. 3. 26.
반응형

TypeORM 에러 해결, Entity Metadata Not Found

 

nestjs logo

 

TypeORM을 사용하는 프로젝트 개발 중에는 다양한 오류 메시지를 마주치게 되는데, 그중 하나가 "Entity metadata for Point#logs was not found"와 같은 메시지입니다.

 

이는 Point 엔티티의 logs 속성에 대한 메타데이터를 찾을 수 없다는 것을 의미하며, 여러 원인에 의해 발생할 수 있습니다. 특히, 이 오류는 app.module.ts에서 모듈 등록을 제대로 하지 않았을 때 자주 발생합니다.

 

 

Entity Metadata Not Found 

 

원인

typeORMError

 

TypeORM에서는 애플리케이션의 엔티티들이 모두 데이터 소스에 등록되어 있어야 합니다. app.module.ts 또는 관련 모듈 파일에서 TypeOrmModule을 통해 엔티티를 등록하지 않으면, 애플리케이션 실행 시 TypeORM은 해당 엔티티의 메타데이터를 찾을 수 없어 오류를 발생시킵니다.

 

 

문제 해결하는 다양한 방법

모듈 파일 확인: app.module.ts 파일을 열고 TypeOrmModule의 설정을 확인하세요. 특히, forRoot 또는 forFeature 메서드를 통해 현재 프로젝트의 모든 엔티티가 정확히 등록되어 있는지 검토합니다.

 

필자의 경우 PaymentModule이 빠져있었다

 

엔티티 등록: Point 엔티티와 관련된 모든 엔티티가 TypeOrmModule에 등록되어 있는지 확인합니다. 예를 들어, TypeOrmModule.forFeature([Point, Log, ...])와 같이 필요한 모든 엔티티를 등록해야 합니다.

 

오타 및 경로 검증: 엔티티 경로가 올바르게 지정되었는지, 그리고 오타가 없는지도 확인해야 합니다. 가끔 파일 경로의 오타나 잘못된 엔티티 이름으로 인해 오류가 발생하기도 합니다.

 

데이터 소스 설정 검토: DataSource 또는 ormconfig.json 파일 내의 설정이 프로젝트의 요구 사항과 일치하는지 확인합니다. 모든 엔티티가 포함되어 있는지, 연결 설정이 올바른지 검토하세요.

 


 

끝으로

Entity metadata for Point#logs was not found와 같은 오류는 app.module.ts에서 엔티티를 올바르게 등록하지 않았을 때 발생할 수 있습니다. 이 문제를 해결하기 위해서는 TypeOrmModule 설정을 주의 깊게 검토하고, 필요한 모든 엔티티가 정확히 등록되어 있는지 확인해야 합니다. 정확한 모듈 등록을 통해 TypeORM과 함께하는 개발이 훨씬 수월해질 것입니다.

 

▼ TypeORM에 관한 다른 글 ▼

 

 

NestJS TypeORM 트랜잭션 사용방법, 예시코드

NestJS TypeORM 트랜잭션 사용방법, 예시코드 트랜잭션은 데이터베이스에서 수행되는 작업의 단위를 나타냅니다. 이는 다른 트랜잭션과 독립적으로 일관되고 안정적인 방식으로 처리되어야 합니다

lemonlog.tistory.com

 

 

NestJS mailer 활용하여 이메일 보내는 방법

NestJS mailer 활용하여 이메일 보내는 방법 NestJS에는 다양한 모듈이 있는데요. 이 중 mailer 모듈을 활용하여 NestJS로 이메일을 손쉽게 보낼 수 있습니다. 이 글에서는 NestJS로 이메일 보내는 방법에

lemonlog.tistory.com