inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

프론트 개발자를 위한 백엔드 101 (NestJS, TypeORM)

[실습] TypeORM 마이그레이션 - DB 컬럼 추가 해보기

TypeORM 마이그레이션

135

Seok-woo Kim

작성한 질문수 3

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 테이블은 아예 생성이 안됩니다.

aws postgresql nestjs typeorm aws-rds

답변 2

0

Seok-woo Kim

자문자답 입니다.

generate 명령어 먼저 실행 해서 src/migrations 에 .ts 파일 만든 후 npm run start로 서버실행 하니 dist 밑에 migrations 폴더아래 .js 로 컴파일된 파일이 제대로 생성되네요

이후 migration:run 실행하니 제대로 테이블 생성됐습니다

 

왜인지 모르겠지만 서버실행 후 migration:generate 했을때 dist 폴더밑에 migrations가 생기질 않았었어요

 

아 이것도 자문자답...

start:dev 로 하니 dist에 바로바로 컴파일된 파일 생성되네요

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. Seok-woo Kim님.

TypeORM 설정 및 마이그레이션 실행 시 발생하는 문제에 대해 도와드리겠습니다.

문제: useFactory와 TypeORM 마이그레이션 실행

  1. useFactory의 린트 에러
    • 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;
   },
  1. 마이그레이션 실행 후 테이블 미생성 문제
    • 마이그레이션 파일은 생성되지만 실제로 데이터베이스에 테이블이 생성되지 않는 경우는 여러 원인이 있을 수 있습니다. 주로 아래 사항들을 확인해 보시길 추천합니다:
      • 데이터베이스 연결 확인: typeorm.ts에서 데이터베이스 설정 정보가 올바르게 입력되었는지 확인합니다.
      • 마이그레이션 경로: typeorm 설정에서 migrations 경로가 정확히 설정되어 있는지 확인합니다. 경로가 잘못 설정되어 있으면 마이그레이션 파일을 찾지 못할 수 있습니다.
      • 데이터베이스 상태: npm run migration:run 명령어 실행 전에 데이터베이스의 연결 상태를 확인합니다. 필요한 경우 연결을 재시도하거나 로그를 확인하세요.

관련해서 비슷한 주제를 다룬 Q&A 게시물이 있어 공유드립니다:

위 문제를 해결하는 과정에서 로그 및 상세 오류 메시지를 참고하면 더 많은 힌트를 얻을 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

[클라우드 설정 중 앞 내용 문의 사항]

1

35

1

https:// studio.opentofu.click 로 접속이 안돼요

0

33

1

aws 계정 생성 질문

1

50

1

에이전트 프로그램 다운로드 불가

0

66

2

베개머리투자법 섹션 5를 듣고 질문드립니다.

0

54

2

ai 레드티밍 자료 및 강의 누락

0

33

1

교육 자료 최신본 제공 가능 문의

0

54

2

미국 써머 타임 적용에 대해서 질문입니다.

0

34

1

클로드 API 기간설정에 대해서

1

48

1

후속강의 쿠폰

0

54

2

환경 셋팅관련 동영상이 어디에 업로드되어 있나요?

1

56

1

강의 목차와 영상 내용 불일치

1

60

2

한국투자증권 모의투자 상시투자 풀릴 시, 프로그램이 헛돌고있음

1

93

2

강의 전체 공개

0

43

1

코드 깃허브는 없을까요?

1

54

2

어렵네요

0

69

1

db연결이 다되었는데 tables에 posts 테이블이 안생겨요

0

132

2

SQL Sheell

0

87

1

PostRepository 구현

0

80

1

Nest.js와 레이어드 아키텍처

0

131

1

NestJS, TypeORM의 typeorm.ts에서 autoLoadEntities: true와 entities: []의 공존

0

275

1

터미널에서 자동완성 되는건 어떤 프로그램인가요?

0

396

2

module에서 import, export, provider, controller..

0

167

2

슬랙채널 가입이 안됩니다.

0

390

2