Server/Node.js

Sequelize - bigint를 사용하는 방법? (+ underscored)

JaeHoney 2022. 1. 11. 22:28

 

DB에 bigint로 저장된 컬럼을 API에서 꺼내서 그대로 사용하면 바이트 부족으로 인해서 데이터가 손실됩니다..!!

 

Sequelize에서는 아래와 같이 dialectOptions의 supportBigNumbers를 정의해서, 손실을 방지할 수 있고, bigNumberStrings를 정의해서 string으로 받을 수도 있습니다.

 

import { Sequelize } from "sequelize";

const shopDB = new Sequelize(
  "shopDB",
  "root",
  "root",
  {
    host: "localhost",
    dialect: "mysql",
    pool: {
      max: 10,
      min: 0,
      acquire: 5000,
      idle: 10000,
    },
    timezone: "+09:00",
    dialectOptions: {
        supportBigNumbers : true,
        bigNumberStrings : true
    },
    define: {
        underscored: true
    }
  }
);

export default shopDB;

underscored는 camelCase의 DTO와 snake_case의 table을 연결시킬 수 있습니다.