[mysql, sequelize] timezone 설정하기
mysql의 timezone은 세팅이 되었는데, sequelize의 timezone과 맞지 않는 경우
@Module({
imports: [
SequelizeModule.forRoot({
dialect: "mysql",
host:
port:
username:
password:
database:
autoLoadModels: true,
synchronize: true,
}),
- sequelize는 백단의 서버를 기준으로 local timezone이 디폴트값이다.
- 먼저 배포된 서버 timezone을 확인하고, sequeilze 또한 한국 시간으로 맞추는 게 좋다.
@Module({
imports: [
SequelizeModule.forRoot({
dialect: "mysql",
host:
port:
username:
password:
database:
autoLoadModels: true,
synchronize: true,
timezone: "+09:00",
}),
- 이렇게 맞춰주는 게 좋고, 서버와 연결된 mysql timezone 자체도 바꿔주는 게 좋다.
mysql timezone 변경
SELECT @@global.time_zone, @@session.time_zone;
- 먼저 현재 timezone이 어떻게 설정되어있는 지 확인한다.
+
| @@global.time_zone | @@session.time_zone |
+
| SYSTEM | SYSTEM |
+
1 row in set (0.00 sec)
- 디폴트값이 SYSTEM인데, 이는 서버 시스템의 timezone을 따르고 있다는 것을 알 수 있다.
SET GLOBAL time_zone='Asia/Seoul';
SET time_zone='Asia/Seoul';
- 전역적으로 적용되는 GLOBAL timezone과 세션 timezone까지 변경해주면 된다.