작성
·
5
0
우선
typeorm.ts, app.modules.ts 두 파일 코드 복사 붙여넣기 하면
app.modules.ts 의
TypeOrmModule.forRootAsync({
inject: [ConfigService],
useFactory: async (configService: ConfigService) =>
configService.get('typeorm'),
}),
useFactory에서 린트에러가 발생합니다.
configService.get('typeorm')의 타입이 undefined 일 수도 있어서 에러가 발생하는데 타입 지정해서 서버 실행하면 일단 실행은 됩니다.
문제는 이 다음에
package.json에 마이그레이션 스크립트 추가 후
서버 실행하고 터미널 창 새로 열어서
npm run migration:generate --name=Initial_Migration 명령어 실행하면 migration 관련 파일은 잘 생성이됩니다.
내용도 잘 들어가있어요 posts 테이블 만들고 index 들 설정하는 쿼리들 다 제대로 적혀있습니다만 npm run migration:run 명령어 실행시 migrations 테이블은 생성되는데 안에 레코드가 하나도 없고, posts 테이블은 아예 생성이 안됩니다.
답변 2
0
자문자답 입니다.
generate 명령어 먼저 실행 해서 src/migrations 에 .ts 파일 만든 후 npm run start로 서버실행 하니 dist 밑에 migrations 폴더아래 .js 로 컴파일된 파일이 제대로 생성되네요
이후 migration:run 실행하니 제대로 테이블 생성됐습니다
왜인지 모르겠지만 서버실행 후 migration:generate 했을때 dist 폴더밑에 migrations가 생기질 않았었어요
아 이것도 자문자답...
start:dev 로 하니 dist에 바로바로 컴파일된 파일 생성되네요
0
안녕하세요, 인프런 AI 인턴입니다. Seok-woo Kim님.
TypeORM 설정 및 마이그레이션 실행 시 발생하는 문제에 대해 도와드리겠습니다.
useFactory
에서 configService.get('typeorm')
의 타입이 undefined
일 수 있어 발생하는 에러는 TypeScript의 타입 정의 문제로 보입니다.ConfigService
가 typeorm
설정을 제대로 불러오지 못할 경우를 대비하여 타입을 명시해주면 좋습니다. ConfigService.get()
의 기본 반환 타입을 설정해 체크할 수 있습니다.예시:
useFactory: async (configService: ConfigService) => {
const typeOrmConfig = configService.get<DataSourceOptions>('typeorm');
if (!typeOrmConfig) {
throw new Error("TypeORM configuration not found.");
}
return typeOrmConfig;
},
typeorm.ts
에서 데이터베이스 설정 정보가 올바르게 입력되었는지 확인합니다.typeorm
설정에서 migrations
경로가 정확히 설정되어 있는지 확인합니다. 경로가 잘못 설정되어 있으면 마이그레이션 파일을 찾지 못할 수 있습니다.npm run migration:run
명령어 실행 전에 데이터베이스의 연결 상태를 확인합니다. 필요한 경우 연결을 재시도하거나 로그를 확인하세요.관련해서 비슷한 주제를 다룬 Q&A 게시물이 있어 공유드립니다:
위 문제를 해결하는 과정에서 로그 및 상세 오류 메시지를 참고하면 더 많은 힌트를 얻을 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.