[TIL] Day54- ORM(2)

공부중인 개발자·2021년 6월 24일
0

TIL

목록 보기
54/64
post-thumbnail

Sequelize 사용법

  1. 설치
    https://sequelize.org/
    Sequelize 공식 홈페이지에 들어가서

$ npm install --save sequelize

원하는 폴더에서 sequelize를 설치해준다.

마이그레이션을 하기 위해 sequelize-cli 역시 설치 해야한다.

설치하는 곳은
https://sequelize.org/master/manual/migrations.html
이곳으로 여기서 마이그레이션에 관한 기초지식을 알 수 있다.

npm install --save-dev sequelize-cli

설치를 하게 되면 bootstrapping을 할 수 있는데 이것은 일종의 마이그레이션에 필요한 템플릿을 설치하는 것으로

  • config
  • models
  • migrations
  • seeders

위의 네가지 폴더와 그 안에 필요한 파일이 설치가 된다.

npx sequelize-cli init

설치를 하게되면 사진처럼 config/config.json , models/index.js , migrations, seeders 가 만들어지게 된다.

config에 있는 정보를 통해서 데이터베이스와 연결하게 된다.

설정 파일을 git의 관리를 받게 하는 대신, 환경 변수를 사용하게 만들기 위해서 cli에

$ export NODE_ENV=development 를 작성하면 환경 변수를 지정해 줄 수 있다.

  1. 모델 생성

config를 조정했다면 이제 모델을 생성해야한다. 모델은 엔티티를 객체로 표현한 형태로, 데이터 구조를 기술하고 데이터에 수행할 수 있는 명령의 모음을 의미

npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string
테이블 이름은 User이고 컬럼은 firstName, lastName, email 인 테이블을 만드는데
작성되지 않아도 id와 created_at, updated_at 이 자동으로 작성이 된다.

MYSQL 상에서는 string이 아닌 varchar(255)와 같이 작성을 해야 문자열이 되지만 ORM의 경우 MYSQL 말고도 다른 데이터베이스에도 작동되기 때문에 string으로 호환이 된다.
숫자의 경우는 integer를 이용하면 된다.

스프린트에서는 url 이란 이름의 테이블을 만들었고 결과물은 다음과 같다.

위를 통해 모델과 마이그레이션이 작성된 것을 알 수 있다.
변경사항이 있다면 모델과 마이그레이션을 수정할 수 있다. 나는 visits 에 default를 0으로 지정해줬다.

이후 마이그레이션을 작동 시켜줘야한다.
npx sequelize-cli db:migrate

작동을 시키고 나면 위와같이 up이 들어가는데 그러면 테이블이 들어가게 된 것이고 mysql을 살펴보면

이렇게 urls와 sequelizeMeta라는 테이블이 생긴다.

테이블 내용을 보면 다음과 같고 userId의 경우 후에 만든 association 용 필드이다.
위에서 말한 것 처럼 나는 visits에 default값을 0으로 만들었고 필드에 id, createdAt,updatedAt 이 자동으로 만들어진것을 확인할 수 있다.
그리고 이 테이블의 변경이 필요할때 스키마에 변경이 있을 때마다 마이그레이션을 다시 실행해줘야한다.

위를 통해 sequelize를 이용하는 법에 대해 배워봤다.


역대급으로 어려운것 같다. 어렵다는 의미가 새로운 것에 대한 낯설음 이었으면 좋겠다.

profile
열심히 공부하자

0개의 댓글