익명의 개발노트

[sequelize] 정의 및 설치법 본문

코딩일기/TIL

[sequelize] 정의 및 설치법

캡틴.JS 2019. 10. 21. 22:56
반응형

Sequelize는 자바스크립트 ORM이다.

간략하게 설명하면 백엔드에서 데이터베이스에 날리는 쿼리를 자바스크립트 객체와 함수로 처리한다.

일반적으로 쿼리 날려 사용하는 것보다는 생산성이 더 뛰어나다고 한다. 

단점은 쿼리가 복잡해지면  ORM으로 표현하는데 한계가 있고, 성능이 raw query에 비해 느리다.

대부분의 ORM에서는 이런 경우를 대비하여 raw 쿼리를 실행할 수 있는 방법도 제공하고 있다.

DDL, DML도 정의할 수 있다.

기본작동원리는 모델설정 => DB migration => DB반영

npm install --save sequelize

Sequelize는 Promise 기반이며, 이것을 사용하기 위해서는 DB가 설치되어야 한다.

mysql사용시 mysql 모듈을 설치해주어야 한다.

npm install mysql2

필요하면 더 편하게 해주는 도구인 Sequelize-cli 모듈을 설치하면 된다.

역시 글로벌로 설치해주면 편하다.(설치하려면, sequelize, mysql2가 먼저 설치되어있어야 한다)

글로벌로 설치를 하면 sequelize 명령어를 사용가능하다.

npm install -g sequelize-cli

최초 실행시 명령어를 아래와 같이 친다.

sequelize init

위와 같이 폴더가 생긴다. 

config에 DB접속정보를 작성 후 model에 클래스를 정의해준 후  app.js에 Sequelize 실행테스트를 작성해준다.

Sequelize를 연동하는 이유는 /models/index.js 파일에서 정의한 모델들을 바탕으로 실제로 Model을 등록하는 일을 한다.

const models = require("./models/index.js"); //이 부분은 index에서 model에 등록된 테이블을 찾음

models.sequelize.sync().then( () => {
  console.log(" DB 연결 성공");
}).catch(err => {
  console.log("연결 실패");
  console.log(err);
})

npm start하면, 위의 로그가 찍히면 연동에 성공한 것이다.

1) Sequelize-cli 

Sequelize-cli를 이용하면 터미널에서 명령어로 모델을 만들 수 있다.

sequelize model:create  --name user2 --attributes "user_id:string, password:string"

모델을 만든 후 세부제약 사항은 models폴더에서 작성해 준다.

model변경이 되면 마이그레이션을 해주어야 한다.

sequelize db:migrate 

디비에서 생성이 되면 기본적인 seq, createdAt, updatedAt 컬럼은 자동으로 생성해 준다.

2) Sequelize-auto

Sequelize-auto는 Sequelize와 반대로, model을 먼저 작성하지 않고, 디비를 먼저 작성한 후에 실행해주면,

디비정보가 모델에 역으로 저장된다.

실행하려면, 글로벌로 설치하는 것이 좋다.

npm install sequelize-auto 
sequelize-auto -h 디비주소 -d 디비명 -u 유저네임 -x DB비번 -p 디비포트번호 -c ./config/config.json -o ./models -C

터미널에서 위 내용을 실행해 주면 Model에 저장된다.

 

반응형

'코딩일기 > TIL' 카테고리의 다른 글

[Sequelize-Transaction]  (0) 2019.10.23
[Mysql] 원격접속  (0) 2019.10.23
[babel 정리] feat. 실전 리액트 프로그래밍  (0) 2019.10.07
[리팩토링] 배열의 차집합  (0) 2019.10.07
[Sonar Qube] 환경설정  (0) 2019.10.07
Comments