1 분 소요

1. config/config.js 코드 변경

const dotenv = require('dotenv');
dotenv.config();

module.exports = {
    development : {
        host:process.env.MYSQL_HOST,
        username: process.env.MYSQL_USERNAME,
        password: process.env.MYSQL_PASSWORD,
        database: process.env.MYSQL_DATABASE_DEV, // development용 db 사용
        dialect: "mysql",
        pool: {
            max: 5,
            min: 0,
            acquire: 30000,
            idle: 10000
        }
    },
    test : {
        host:process.env.MYSQL_HOST,
        username: process.env.MYSQL_USERNAME,
        password: process.env.MYSQL_PASSWORD,
        database: process.env.MYSQL_DATABASE_TEST, // test용 db 사용
        dialect: "mysql",
        pool: {
            max: 5,
            min: 0,
            acquire: 30000,
            idle: 10000
        }
    },
    production : {
        host:process.env.MYSQL_HOST,
        username: process.env.MYSQL_USERNAME,
        password: process.env.MYSQL_PASSWORD,
        database: process.env.MYSQL_DATABASE_PROD, // production용 db 사용
        dialect: "mysql",
        pool: {
            max: 5,
            min: 0,
            acquire: 30000,
            idle: 10000
        }
    },
};

.env

.env에는 아래와 같이 설정되어있다.

MYSQL_DATABASE_DEV=dev-db
MYSQL_DATABASE_TEST=test-db
MYSQL_DATABASE_PROD=prod-db

2. models/index.js 코드 변경

const Sequelize = require("sequelize");
const env = process.env.NODE_ENV || 'development'; // process.env.NODE_ENV가 undefined라면 development로
const dbConfig = require("../config/config")[env];
const db = {};

const sequelize = new Sequelize(dbConfig.database, dbConfig.username, dbConfig.password, {
    host: dbConfig.host,
    dialect: dbConfig.dialect,
    operatorsAliases: false,
    pool: {
        max: dbConfig.pool.max,
        min: dbConfig.pool.min,
        acquire: dbConfig.pool.acquire,
        idle: dbConfig.pool.idle
    },
    logging: false,
});

. . .

3. npm script 변경

cross-env 설치

npm i cross-env

script 변경

  "scripts": {
    "dev": "nodemon app.js",
    "test": "cross-env NODE_ENV=test mocha result.spec.js",
    "start": "cross-env NODE_ENV=production node app.js"
  },

4. migration

npx sequelize db:create --env development // dev-db 생성
npx sequelize db:create --env test // test-db 생성
npx sequelize db:create --env production // prod-db 생성

참고

ktaewon98.log



💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기