모델
/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 설정 할 것