NestJS TypeORM Migration DB 생성 및 첫 Migration진행 -2
이번에는 TypeORM에서 migration을 셋팅하고 이후 글에서는 동작을 하도록 하겠습니다.
이전글 : NestJS TypeORM Migration 셋팅하기 -1
진행을 위해서는 NestJS가 설치 되어 있어야 합니다. 아래 링크를 참고해 주시기 바랍니다.
링크 : nest js - install & Create Project from Linux or Ubuntu
해당 글에서는 Postgres을 사용합니다. 다만 진행의 편리성을 위해 Docker Container를 이용하여 사용합니다. 아래 링크를 참고해 주시기 바랍니다.
링크 : Docker-Compose yaml파일을 이용하여 PostgreSQL를 Local로 구축하기
1. users 모듈을 nest cli로 생성합니다.
$ nest g res users
2. user.entity.ts파일에 들어가서 Table Column을 설정합니다.
3. users.module.ts에서 typeorm을 imports 합니다.
4. 이제 nest 서버를 실행합니다.
$ npm run start:dev
하지만 DB에는 users테이블이 생성이 안된것을 알수 있다. 이런 이유로 migration을 진행해야 한다.
물론 간단한 방법으로 dataSourceOption안에 'synchronize : true'를 넣으면 쉽게 해결된다. 다만 Production에서 TypeOrm이 synchronize를 하는 경우 일부 혹은 모든 데이터가 변질 되거나 사라질수 있다. 이런 이유로 production에서는 synchronize를 false로 두고 migration을 진행한다.
5. 첫 Migration
- migration파일을 생성합니다.
$ npm run migration:generate -- [migration 경로]
migration 경로 : migration파일이 생성될 경로입니다. 처음에 db폴더안에 생성하면 됩니다. 기존 파일과 구분짓기 위해서 migration폴더를 생성해서 그 안에 저장하도록 하겠습니다. (ex : db/migrations/[migration 이름]
이제 migrations 폴더에 가면 새로운 ts파일이 생성된 것을 알수 있습니다.
이제 migration:run을 진행해 보겠습니다.
$ npm run migration:run
위 사진처럼 정상적으로 migration을 진행했다면 DB에도 Table이 생성된 것을 알수 있습니다.
만약 방금 migration을 번복하고 싶다면 migration:revert을 진행합니다.
$ npm run migration:revert
다음 글에서는 Table을 수정, 삭제에 대해서 알아보도록 하겠습니다.
다음글 :
댓글
댓글 쓰기