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
}
});