Sequelize와 MySQL 연결하기

Written on July 18, 2019

Sequelize는 DB의 복잡한 문법을 간단하게 자바스크립트 객체 형식으로 사용할 수 있도록 해주는 ORM(Object-relational Mapping) 중 하나이다. 이번 포스트 에서는 Sequelize를 MySQL db와 연결시키는 방법을 알아보겠다. 이미 db 내에 tables는 정의되어 있는 상황이다.

Sequelize와 필요 패키지 설치

$ yarn add sequelize mysql2
$ yarn global add sequelize-cli
$ yarn sequelize init

sequelize init을 하고나면 프로젝트의 루트디렉토리에 config, migrations, models, seeders 폴더가 생성된다.

config.json 파일 수정하기

sequelize init으로 만들어진 config.json 파일을 프로젝트 db 정보에 맞춰 수정한다. "operatorsAliases": false는 더이상 쓰이지 않으므로 삭제한다.

{
"development": {
"username": [username],
"password": [password],
"database": [database name],
"host": [db server host],
"dialect": "mysql"
}

MySQL 연결하기

app.js 파일에 아래 코드를 추가하여 Sequelize를 통해 익스프레스와 mysql을 연결한다.

const sequelize = require("./models").sequelize;
sequelize.sync();

sync 메서드를 사용하면 서버 실행 시 자동적으로 MySQL과 연동된다.

sequelize-auto를 사용하여 models 파일 만들기

db에 스키마가 정의되어 있지 않은 상황이라면, models에 손수 정의해주어야 하는데, 이미 MySQL db에 스키마가 정의되어 있는 상황이라면 sequelize-auto 모듈을 사용하여 간단하게 models 파일을 만들 수 있다.

먼저 sequelize-automysql 모듈을 설치한다.

$ yarn global add sequelize-auto
$ yarn global add mysql

그리고 아래 커맨드를 작성한다.

$ sequelize-auto -h [host] -d [database] -u [username] -x [password] -p [port]  --dialect [dialect] -o [/path/to/models] -C

그럼 자동적으로 db에 정의된 스키마에 따라 models폴더 내에 파일이 생성된다!


👩🏻‍💻 배우는 것을 즐기는 프론트엔드 개발자 입니다
부족한 블로그에 방문해 주셔서 감사합니다 🙇🏻‍♀️

in the process of becoming the best version of myself