sequelize 타임존 설정

Creating the dots·2021년 12월 14일
0

project-3-ShallWeHealth

목록 보기
24/26

문제(1)

sequelize로 데이터를 create할때, 자동으로 생성되는 createdAt과 updatedAt의 시간이 UTC기준으로 저장된다.

해결

models > index.js에 timezone설정에 'Asia/Seoul'을 추가했다. 그 결과, 데이터베이스에 한국시간으로 저장되었다.

sequelize = new Sequelize(config.database, config.username, config.password, {
  host: config.host,
  port: config.port,
  dialect: config.dialect,
  timezone: "Asia/Seoul", //이 부분을 추가함.
});

문제(2)

데이터베이스에는 한국시간으로 잘 저장되었지만, findAll등으로 데이터를 조회할때, 다시 -9시간된 상태(타임존 적용 전 상태)로 불러왔다.

해결

로드할때, 날짜를 String 형태로 받아와서, timezone을 -9시간 할 수 없도록 한다.

sequelize = new Sequelize(config.database, config.username, config.password, {
  host: config.host,
  port: config.port,
  dialect: config.dialect,
  timezone: "Asia/Seoul",
  dialectOptions: {
    charset: "utf8mb4",
    dateStrings: true,
    typeCast: true,
  },
});

reference

profile
어제보다 나은 오늘을 만드는 중

0개의 댓글