Node Express - Sequelize MySQL 타임존 이슈

Corner·2022년 5월 29일
0

node

목록 보기
5/5

Sequelize에서 MySQL을 사용할 때 DB에 INSERT를 하게 되면, 저희나라는 세계협정시 기준으로 +09시간이라 세계협정시(UTC) 시간을 기준으로 맞춰지면서 created, updated하게 되었을 때 Data 시간이 9시간 이전 기준으로 들어가있습니다.

이를 해결하기 위해 Sequelize에서 DB Connection 하기 위한 config 파일에서 옵션을 추가해주어야 합니다.


☝️문제사진

저는 아래 설정으로 해결하였습니다.

config/db.config.js

moudle.exports = { 
    dialect: "mysql",
    dialectOptions: {
        charset: "utf8mb4",
        dataStrings: true,
        typeCast: true
    },
    timezone: "+09:00",
}

설정을 해준 뒤 sequelize에서도 설정을 해주어야 합니다.
models/index.js

const sequelize = new Sequelize(dbConfig.DB, dbConfig.USER, dbConfig.PASSWORD, {
    host: dbConfig.HOST,
    port: dbConfig.PORT,
    dialect: dbConfig.dialect,
    operatorsAliases: false,
    dialectOptions: dbConfig.dialectOptions,
    timezone: dbConfig.timezone,
    pool: {
        max: dbConfig.pool.max,
        min: dbConfig.pool.min,
        acquire: dbConfig.pool.acquire,
        idle: dbConfig.pool.idle
    }
});
profile
Full-stack Engineer. email - corner3499@kakao.com,

0개의 댓글