inflearn logo
강의

Course

Instructor

Backend 101 for Frontend Developers (NestJS, TypeORM)

[Practice] TypeORM Migration - Adding a DB Column

TypeORM 마이그레이션

84

Seok-woo Kim

3 asked

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

Answer 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

communityai8509

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

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

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

  1. useFactory의 린트 에러
    • useFactory에서 configService.get('typeorm')의 타입이 undefined일 수 있어 발생하는 에러는 TypeScript의 타입 정의 문제로 보입니다.
    • ConfigServicetypeorm 설정을 제대로 불러오지 못할 경우를 대비하여 타입을 명시해주면 좋습니다. 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 게시물이 있어 공유드립니다:

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

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

현재 시점 기준으로 최신 시험 출제 범위가 반영되었다고보면 될까요?

0

10

1

섹션 17퀴즈 1번 답 오류 확인

0

16

1

1번 질문

0

23

2

안녕하세요

0

27

1

[수강 연장 문의] 직장 병행으로 인한 기간 연장 요청드립니다.

0

23

2

Readiness Probe 관련 질문드립니다.

0

21

1

강의 외 개념 및 시험 관련 질문

0

40

3

실습용 테이블, 데이터 생성 파일 있을까요?

1

32

2

구매후 바로 질문 하나만요..

0

42

1

최신버젼 다운로드

0

33

2

디바이스 별 다른 크기의 화면을 고려하는 반응형UI

0

33

2

수강기간 연장 부탁드립니다.

0

36

2

강의가 예전 강의라 그런지 녹화영상이랑 다른부분이 있습니다

0

24

2

기간 연장 부탁드립니다. 시험 준비하는데 시간이 부족합니다. 감사합니다.

0

35

2

pm2 가 설치가안됩니다

0

40

2

어렵네요

0

24

1

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

0

72

2

SQL Sheell

0

54

1

PostRepository 구현

0

48

1

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

0

84

1

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

0

238

1

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

0

324

2

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

0

134

2

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

0

326

2