본문 바로가기

programming/Javascript

Node-Sequelize-Mysql (2) Sequelize 설치

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 에도 동일한 테이블 세팅을 구성할 수 있다

Node-Sequelize-Mysql (3) Mysql 로컬 db docker 띄우기