ORM (Sequelize)

이동환·2020년 10월 28일
1

TIL

목록 보기
45/74

ORM

: ORM은 Object - Relational Mapping 의 약자다.
이 ORM은 JS의 객체와 database(mysql) 사이에 ORM이 위치하하여, DB의 레코드(entities)에 접근 할때 마치 JS의 객체 또는 클래스처럼 다룰 수 있다.

다시 말해, ORM 은 JS와 DB사이에 위치한 통역사 역할을 한다고 말 할 수 있다.

Sequelize(공식문서 보러가기)

: Sequelize는 ORM중 하나이다. nodeJs환경에서 DB에게 mysql문을 쉽게 날릴 수 있게 도와주는 라이브러리이다.

설치하기

npm install --save sequelize

Sequelize-cli(cli 공식문서)

Sequelize CLI는 The Sequelize command line interface의 약자다. 이름에서 유추해 볼 수 있듯이, 터미널에서 사용하던 명령어처럼 명령어를 작성해 데이터베이스에게 sql문을 날릴 수 있게 해준는 것이다.

install하기

npm install --save-dev sequelize-cli

init 하기
: 새로운 프로젝트를 만들기 위해서 init을 해야한다.

npx sequelize-cli init

init을 하면, 4가지 파일이 생성되고, 역할은 아래와 같다.
config - config파일은 CLI한테 어떻게 DB와 연결할건지를 말해주는 파일이다.
models - 프로젝트에 사용될 모든 모델이 담긴다.
migrations - migrate를 한 파일들이 담긴다.
seeders - seed파일들이 담긴다.

config파일은 아래와 같이 생겼다. 여기서 develop,test,production의 역할은 다르다. 먼저 develop은 우리가 개발 할 때 사용하는 부분이다. test는 테스트를 할때, production은 배포할때이다.

그래서 역할에 맞게 DB이름, 패스워드, 유저이름 등을 적절하게 적어주면된다.

{
  "development": {
    "username": "root",
    "password": null,
    "database": "database_development",
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
  "test": {
    "username": "root",
    "password": null,
    "database": "database_test",
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
  "production": {
    "username": "root",
    "password": null,
    "database": "database_production",
    "host": "127.0.0.1",
    "dialect": "mysql"
  }
}

model생성하기

npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string,password:integer

위와 같이 적게 되면 firstName, lastName, email, password의 필드를 만들고, 데이터 타입도 지정해줄 수 있다.(쉽다 ^^)

migrate하기

npx sequelize-cli db:migrate

migrate가 무엇인가하면, 이전 단계에서는 우리는 모델을 만들었지만, 이 모델을 DB에 넣지 않았다. 그래서 이 모델을 DB에 넣기 위해서 우리는 migrate를 해주어 DB에서 우리가 만든 User라는 테이블을 볼 수 있다.

migrate취소하기
만약 잘 못된 테이블을 만들었다면 취소도 해줄 수 있어야한다.

npx sequelize-cli db:migrate:undo
profile
UX를 개선하는것을 즐기고 새로운것을 배우는것을 좋아하는 개발자입니다.

0개의 댓글