20.10.27 [ORM]

박종찬·2020년 10월 27일
0

TIL

목록 보기
41/89
post-thumbnail

Sequelize ORM으로 Migration 설정과 관계 맺기.. Advanced하다.

ORM(Object - Relational Mapping)

ORM은 객체와 관계형 DB 간 매핑을 해주는 것을 말한다. 이렇게 함으로서 관계형 DB를 JS의 객체에 접근하는 방식으로 손쉽게 컨트롤할 수 있어 생산성이 증가하며 코드 라인이 줄어들면서 가독성을 올려준다.

이번 스프린트를 통해 Sequlize를 배우게 되었다.

Sequlize

Install

  • Sequelize 설치:npm install —save sequelize
  • Cli로 Migration을 이용하기 위해 설치 : npm install —save-dev sequelize-cli
  • Bootstraping (바로 개발을 실행할 수 있도록 도와주는 초기 세팅) : npx sequelize-cli init

  • 초기 세팅이 끝나면 config/config.json에 development, test, production 3 가지의 환경들이 있다.
  • 이렇게 여러 개의 환경이 분리되어 있는 이유는 배포 중인 DB로 개발을 하거나 오류 수정을 할 수 없으니까 여러 개로 분리하는 것으로 추측된다.
  • 아무 것도 건들이지 않는다면 Default ENV는 development다. 다른 환경으로 바꾸고 싶다면 config.json에 추가를 하거나, process.env.NODE_ENV로 따로 환경 설정을 해주면 된다.

Create Model

Cli를 통해 Model를 만들 수 있다. 이 Model은 테이블의 틀이라 생각한다.
모델을 만들 때, attributes를 작성할 때 속성 간 공백이 없어야 한다.

npx sequelize-cli model:generate 
--name User 
--attributes url:string,title:string,visitis:integer

만들어진 모델은 models 디렉토리에 있다. 살펴보면 varchar가 아닌 INTEGER로 MySQL과 다른 데이터타입으로 정의가 되어 있는데, Sequelize는 MySQL뿐 만 아니라 다른 DB 종류에 대해 데이터 타입도 살짝 살짝 다르기에 Sequelize가 이를 통합시킨 것이다.

모델을 만들면 Table이 생성되는 것이 아니다. 테이블은 모델을 만든 뒤 마이그레이션을 해줘야 생성된다.

마이그레이션 Command : npx sequelize-cli db:migrate
만약 마이그레이션을 하고 이전 테이블로 바꾸고 싶다면, npx sequelize-cli db:migrate:undo를 하면 된다.

참고

profile
반가워요! 사람을 도우는 웹 개발자로 성장하기! :)

0개의 댓글