Sequelize ORM으로 Migration 설정과 관계 맺기.. Advanced하다.
ORM은 객체와 관계형 DB 간 매핑을 해주는 것을 말한다. 이렇게 함으로서 관계형 DB를 JS의 객체에 접근하는 방식으로 손쉽게 컨트롤할 수 있어 생산성이 증가하며 코드 라인이 줄어들면서 가독성을 올려준다.
이번 스프린트를 통해 Sequlize를 배우게 되었다.
npm install —save sequelize
npm install —save-dev sequelize-cli
npx sequelize-cli init
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
를 하면 된다.
참고