본문 바로가기

개발일지/인턴생활

10/24 - Sequelize

728x90

Nodejs 에 Orm을 적용하기 위해 Sequelize 를 썼음

 

겪었던 문제점

 

1. Table 의 이름에 자꾸 's' 가 붙는다 

  • 분명 model 의 이름을 apiLog_luna 라고 작성을 했으나 Sequelize 실행이 된 후에는 자꾸 apiLog_lunas 가 되어버렸다. 
  • 검색해서 찾아본 결과 Sequelize는 설정한 table 이름에서 's' 를 자동으로 붙여준다 한다. 
  • 이걸 해결하는 방법은 module을 define 할때 설정을 추가하면 원래 Table 이름으로 실행이 가능 
module.exports = (sequelize, DataTypes) => {
  const apiLog_luna = sequelize.define('apiLog_luna', {
    sessionId: {
      type: DataTypes.STRING(20),
      allowNull: false,
    },
    createdAt: {
      type: DataTypes.DATE,
      allowNull: false,
    },
    user_id: {
      type: DataTypes.STRING,
      allowNull: false,
    } },
  {
    underscored: false,
    freezeTableName: true,
    freezeColumnName: true,
    timestamps: false,
    tableName: 'apiLog_luna',
  });
  return apiLog_luna;
};

 freezeTableName: True 를 추가하면 된다.