inflearn logo
강의

講義

知識共有

フロントエンド開発者のためのバックエンド101 (NestJS, TypeORM)

【実習】TypeORMマイグレーション - DBカラムを追加してみる

TypeORM 마이그레이션

78

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

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 게시물이 있어 공유드립니다:

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

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

node.js 설치 관련 질문 드립니다

0

9

1

Cursor 설정

0

20

1

맥북으로 RDP 연결 질문

0

21

2

라우팅 테이블 설정 중 궁금한게 있습니다.

0

32

1

수강 연장 가능하면 요청 드립니다.

0

20

2

JPA Repository 질문이 있습니다!

1

32

2

페이지네이션 처리를 쿼리에서 하는 방식 질문

1

35

1

(강의 6분 50초 부분) Workspace 안에 index.html이 비어있음

0

30

2

Route53 정책과 loadbalancer 차이점이 궁금합니다.

0

28

2

강의순서가 바뀌어 있습니다.

0

32

1

강의사이트 접속 에러 문의 드립니다.

0

27

2

build.zip 퍄일이 없습니다.

0

39

1

무중단 배포

0

56

2

workflows/deploy.yml 궁금증

0

52

2

강의 앞 부분이 잘려있는 것 같습니다.

0

32

2

어렵네요

0

19

1

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

0

70

2

SQL Sheell

0

51

1

PostRepository 구현

0

44

1

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

0

78

1

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

0

235

1

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

0

308

2

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

0

131

2

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

0

322

2