nodejs – sequelize 모델 정의

Posted by

모델

/models/index.js

const Sequelize = require('sequelize');
const env = process.env.NODE_ENV || 'development';
const config = require('../config/config.json')[env];
const sequelize = new Sequelize(config.database, config.username, config.password, config);

const User = require('./user')(sequelize, Sequelize.DataTypes);

const db = {};

db.sequelize = sequelize;
db.User = User;
User.associate(db);

module.exports = db;

모델 정의

const { Sequelize } = require("sequelize");
module.exports = (sequelize) => {
  const User = sequelize.define("User", {
    id: {
      type: Sequelize.UUID,
      defaultValue: Sequelize.UUIDV4,
      primaryKey: true,
      comment: "UUID",
    },
    email: {
      type: Sequelize.STRING(100),
      validate: {
        isEmail: true,
      },
      comment: "이메일",
    },
    password: {
      type: Sequelize.STRING,
      comment: "암호화된 비밀번호",
    },
    ...
  }, {
    charset: "utf8", 
    collate: "utf8_general_ci",
    tableName: "pd_users",
    timestamps: true,
    paranoid: true,
  });

  User.associate = (db) => {
  }

  return User;
};

모델 옵션

  • timestamps – createdAt, updatedAt 컬럼 추가 여부
  • paranoid – deletedAt 컬럼 사용 추가(사용) 여부
  • tableName – 테이블명 지정
  • charset, collate – 한글설정 위해 utf8, utf8_general_ci 설정 할 것

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다