강의를 듣던 도중 repository 에러로 반나절을 날려먹었다.
삽질의 연속이었다.
버전을 낮춰보기도 하고 강의의 소스코드를 비교해서 틀린그림찾기도 엄청 했었다.
하지만 해결하지 못했었다. 찾던 도중 nestjs doc의 database Typeorm 편을 찾게 되었다.
역시 doc부터 먼저 찾아 봐야한다는것을 다시 상기시키게 되었다.
우선 나의 에러는 아래와 같았다.
RepositoryNotFoundError: No repository for "BoardRepository" was found. Looks like this entity is not registered in current "default" connection?
at RepositoryNotFoundError.TypeORMError [as constructor] (/Users/wonjun/develop/workspace/nestjs-test/src/error/TypeORMError.ts:7:9)
at new RepositoryNotFoundError (/Users/wonjun/develop/workspace/nestjs-test/src/error/RepositoryNotFoundError.ts:10:9)
at EntityManager.getRepository (/Users/wonjun/develop/workspace/nestjs-test/src/entity-manager/EntityManager.ts:964:19)
at Connection.getRepository (/Users/wonjun/develop/workspace/nestjs-test/src/connection/Connection.ts:354:29)
at InstanceWrapper.useFactory [as metatype] (/Users/wonjun/develop/workspace/nestjs-test/node_modules/@nestjs/typeorm/dist/typeorm.providers.js:16:34)
at Injector.instantiateClass (/Users/wonjun/develop/workspace/nestjs-test/node_modules/@nestjs/core/injector/injector.js:343:55)
at callback (/Users/wonjun/develop/workspace/nestjs-test/node_modules/@nestjs/core/injector/injector.js:53:45)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at Injector.resolveConstructorParams (/Users/wonjun/develop/workspace/nestjs-test/node_modules/@nestjs/core/injector/injector.js:132:24)
at Injector.loadInstance (/Users/wonjun/develop/workspace/nestjs-test/node_modules/@nestjs/core/injector/injector.js:57:13)
열받았다.
해결방법은 아래와 같다.
boards.module.ts
import 부분의 forfeature 안에를 BoardRepository가 아닌 Board(Entity)로 변경해주고
boards.service.ts
@InjectRepository 어노테이션을 BoardRepository에서 Board로 변경해주면 되는 것이었다....
Doc을 보면 너무나도 쉽게 해결할 수 있던 것을 반나절을 삽질했다. 이 해결방법이 많은 사람들에게 도움이 되길 기도하며...
남은 강의 더 들으러 간다...
이거 유튜브 강의 댓글에도 남기면 좋을 것 같네요ㅎ
강의 댓글에도 typeorm에 관한 버젼 얘기가 있어요.