Nest에서 TypeORM셋팅

민태영·2023년 8월 16일

TypeORM이란:

타입스크립트계의 Sequelize로 타입스크립트를 기반한 NestJS에서 쓰이는 ORM이다.

TypeORM의 장단점:

장점

1) Database의 쿼리문을 사용하는 대신 기존과 유사한 방식으로 코드를 작성하므로 사용이 편리하다.

2) 독립적인 코드를 사용하므로 재사용성이 증가한다.

3) DBMS에 종속적인 쿼리를 사용하지 않으므로 DB변경이 용이하다.

단점

1) 테이블간의 관계가 복잡해지고 쿼리가 복잡해질 수록 구현이 어렵다.

2) 쿼리를 많이 사용해본 사람일 경우 쿼리를 사용했을때 보다 직관성이 떨어진다.

TypeORM설치 및 사용준비:

1) NestJS프로젝트를 만들기

nest new <프로젝트명>

2) TypeORM관련 패키지 설치

npm install --save @nestjs/typeorm typeorm mysql2

3) src폴더에 orm.config.ts를 만든다.

4) orm.config.ts파일 안에 연결할 데이터베이스 정보를 입력한다.

5) app.module.ts에서 아래의 imports안에 orm.config를 추가

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { TypeOrmModule } from '@nestjs/typeorm';
import { ormConfig } from './orm.config';

@Module({
  imports: [TypeOrmModule.forRootAsync({ useFactory: ormConfig })],
  controllers: [AppController],
  providers: [AppService],
})

아래까지 완료가 되었으면 nest프로젝트에서 typeorm을 사용할 준비가 완료!

sequelize와 달리 TypeOrm은 스키마를 직접 생성해준다.

CREATE SCHEMA <스키마이름> DEFAULT CHARACTER SET utf8

  • 스키마이름은 orm.config.ts안에 database이름과 같이 한다.

  • 스키마를 생성하고 테이블은 entity로 생성하고 싶다면 SYNCRONIZE의 값을 true로 해준다.

profile
꿈을 꾸는 개발자

0개의 댓글