Skip to main content

Command Palette

Search for a command to run...

02. Nestjs with typeorm

Updated
•1 min read•View as Markdown
C

Music Composer Javascript Lover

개념

  • ORM?

    • Object Relational Mapping

    • 객체와 Relational DB 를 매핑 해주는 기술

    • 따라서 자바, 자바스크립트 관계없이 ORM 은 사용 될 수 있으며

    • RDB 에 해당하는 MySQL, PostgreSQL, MariaDB, Microsoft SQL Server, Oracle 등이 데이터베이스로 사용 될 수 있다.

  • TypeORM

    • Typescript + ORM

장점

  • 쿼리문을 사용할 필요없이 기존 방식의 코드 작성 방식으로 작업이 가능

  • mysql workbench 등에서 작업하는 것 보다 코드의 추적관리가 용이하다

    • migration 을 활용하면 상황에 따라서 이전 스키마로 롤백이 가능하다
  1. 설치

    yarn add @nestjs/typeorm typeorm mysql2

  2. 설정

    ormconfig.ts 파일 생성후 세팅

    e.g.

     import { TypeOrmModuleOptions } from '@nestjs/typeorm';
    
     const ormConfig: TypeOrmModuleOptions = {
       type: 'mysql',
       host: 'localhost',
       port: 3306,
       username: 'root',
       password: 'root',
       database: 'local-test',
       entities: [__dirname + '/**/*.entity{.ts,.js}'],
       migrations: [__dirname + '/migrations/*{.ts,.js}'],
       synchronize: false,
     };
    
     export default ormConfig;
    

    synchronize: true 를 하면 자동으로 데이터베이스가 갱신된다.

    따라서 dev 서버에서는 true 로 두어도 상관 없지만 prod 서버에서는 false 로 설정해두어야 데이터 유실이 발생하지 않는다

작업 진척도

  • 현재 모종의 이유로 migration:create 는 작동하나 migration:generate 는 작동하지 않는다.

  • 며칠 방법을 찾아봤지만 진전이 없어 일단은 synchronize:true 로 두고 작업을 진행하기로 했다.

More from this blog

01. Nestjs - Start nest project with yarn berry + docker

Nest.js 와 Mysql 을 연동하여 crud 기능 구현을 목표로 하고 있다. 몇 번 해보긴 했지만 아직 완벽하게 이해하진 못한 것 같아 반복숙달에 의미를 둔다. 목표 yarn berry 사용 도커로 mysql 연동 crud api 개발 테스트 코드 작성 insomina 로 api 작동여부 최종 확인 작업 진행 yarn berry nest new 프로젝트이름 을 통해 최초 프로젝트를 생성 yarn set version be...

Jan 5, 20242 min read

Yeol (Chang-Yeol Lee)

6 posts