TypeORM 사용하기

hams·2022년 11월 3일
1

SQL

목록 보기
3/3
post-custom-banner

1. TypeORM이란?

node.js에서 실행되고 TypeScript로 작성된 객체 관계형 매퍼 라이브러리
MySQL, PostgresSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL 같은 여러 데이터베이스 지원

2. ORM이란? (Object Relational Mapping)

객체와 관계형 데이터베이스의 데이터를 자동으로 변형 및 연결하는 작업
ORM을 이용한 개발은 객체와 데이터베이스의 변형에 유연하게 사용 가능하다

객체 지향 프로그래밍은 클래스 사용
관계형 데이터베이스는 테이블 사용
-> 객체 모델과 관계형 모델 간 불일치 존재
이걸 맵핑 시켜주는게 ORM

3. TypeORM 특징과 이점

  • 모델을 기반으로 데이터베이스 테이블 체계를 자동으로 생성
  • 데이터베이스에서 개체를 쉽게 삽입, 업데이트, 삭제 가능
  • 테이블 간의 매핑(1:1, 1:다, 다:다)를 만든다.
  • 간단한 CLI 명령 사용
  • 간단한 코딩으로 ORM 프레임 워크를 사용하기 쉽다
  • 다른 모듈과 쉽게 통합된다.

4. TypeORM 사용시 필요한 모듈 설치

@nestjs/typeorm : NestJS에서 TypeORM을 사용하기 위해 연동시켜야 하는 모듈
typeorm : TypeORM 모듈
pg : Postgres 모듈
npm i pg typeorm @nestjs/typeorm --save 으로 한꺼번에 설치 고고

잠깐
+++++++++++++++++++++
주의!!!!!!
npm install typeorm@0.2

0.3 최신 버전에서는 EntityRepository 사용이 불가능해서 0.2버전으로 다운그레이드 했어요
그냥 0.2버전 다운하시는게 나을듯 합니다^-^

4-1 TypeORM 설정파일 생성 & 작성 & 연결

(1). 생성하기

src-configs폴더생성-typeorm.config.ts파일 생성

(2). 작성하기

아까 pgAdmin에서 만든 DB 정보를 기입해준다
참조: https://velog.io/@genius_jihyepark/Postgres와-pgAdmin로-데이터베이스-생성하기

import { TypeOrmModuleOptions } from '@nestjs/typeorm';

export const typeORMConfig: TypeOrmModuleOptions = {
  type: 'postgres',
  host: 'localhost',
  port: 5432,
  username: 'postgres',
  password: 'postgres',
  database: 'board-app',
  entities: [__dirname + '/../**/*.entity.{js,ts}'],
  synchronize: true,
};

synchronize -> true값을 주면 애플리케이션을 다시 실행할 때 엔티티 안에서 수정된 컬럼의 길이 타입 변경 값 등을 해당 테이블을 Drop한 후 다시 생성해준다

(3). 연결하기

app.module.ts로 가서 연결시키기

post-custom-banner

0개의 댓글