1. mysql, sequelize, sequelize-cli 모듈 설치
$ npm i --save sequelize mysql2 // 모듈 설치
$ npm i -g sequelize-cli // 콘솔에서 sequelize 명령 가능하게 하는 모듈
$ sequelize init // 필요한 파일과 디렉토리를 자동 설치
- 초기 세팅 폴더 및 파일 생성됨
- 폴더 및 파일들의 간략한 설명만 하고 실제 세팅은 뒤에서 진행
- config.json
- sequelize 모듈을 DB 환경과 연결 시키는 용도
- 편의상 js로 변경하여 사용한다
export default {
development: {
username: "root",
password: "hello1234!",
database: "DEV-HELLO-WEB",
host: "127.0.0.1",
dialect: "mysql",
port: 3307,
},
test: {
username: "root",
password: "hello1234!",
database: "TEST-HELLO-WEB",
host: "127.0.0.1",
dialect: "mysql",
port: 3307,
},
production: {
username: "root",
password: null,
database: "HELLO-WEB",
host: "127.0.0.1",
dialect: "mysql",
port: 3307,
},
};
- models/~
- ORM 객체로 사용할 Model을 정의하는 곳
- RDB에서 member, post, qna 테이블들이 있다고 가정하면, 각각 테이블 별로 Member, Post, Qna 모델을 만들어 주고, 컬럼 속성들이나 제약조건들을 정의해 주면 된다
- index.js
- Sequelize 인스턴스를 생성
- config에서 정의한 환경변수에 따라서 mysql DB와 연동된 sequelize 객체를 export
- default로 만들어주는 내용을 아래와 같이 필요한 내용만 두고 수정한다
"use strict";
import { Sequelize } from "sequelize";
import config from "./config/config.js";
export default new Sequelize(config[process.env.NODE_ENV]);
- migrations
- RDB DDL 정의하는 파일들
- 실제로 ORM 객체로 작성한 테이블 정의 파일을 Mysql DB에 테이블로 반영시킬 수 있다.
- 이 migrations 파일들만 있으면, 어떤 RDBMS 에도 동일한 테이블 세팅을 구성할 수 있다