본문 바로가기

엉터리 개발 이야기/개인프로젝트

참고 코드 - 모델

반응형
module.exports = (sequelize, DataTypes) => {
const Order = sequelize.define('order', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},

order_id: {
type: DataTypes.STRING,
unique: true,
},

order_date: {
type: DataTypes.DATE
},

product_name: {
type: DataTypes.STRING
},

amount: {
type: DataTypes.INTEGER
},

shop_linker: {
type: DataTypes.STRING
},

is_complete: {
type: DataTypes.BOOLEAN
},

status: {
type: DataTypes.STRING
},

note: {
type: DataTypes.STRING
},

duplication_count: {
type: DataTypes.INTEGER
},

createdAt: DataTypes.DATE,
updatedAt: DataTypes.DATE,
});

Order.associate = function (models) {
Order.belongsTo(models.partner, {as: 'partner', foreignKey: {allowNull: false}});
}

return Order;
}



module.exports = (sequelize, DataTypes) => {
const Partner = sequelize.define('partner', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},

name: {
type: DataTypes.STRING,
unique: 'compositeIndex'
},

code: {
type: DataTypes.STRING,
unique: 'compositeIndex'
},

createdAt: DataTypes.DATE,
updatedAt: DataTypes.DATE,
});

Partner.associate = function (models) {
models.partner.hasMany(models.order);
}

return Partner;
}



module.exports = (sequelize, DataTypes) => {
const PartnerOrder = sequelize.define('partner_order', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
},

order_number: {
type: DataTypes.STRING,
},

status: {
type: DataTypes.STRING,
},

amount: {
type: DataTypes.INTEGER
},

is_complete: {
type: DataTypes.BOOLEAN
},

note: {
type: DataTypes.STRING
},

order_type: {
type: DataTypes.STRING
},

createdAt: DataTypes.DATE,
updatedAt: DataTypes.DATE,
});

PartnerOrder.associate = function (models) {
PartnerOrder.belongsTo(models.partner, {as: 'partner', foreignKey: {allowNull: false}});
}

return PartnerOrder;
}


const Sequelize = require('sequelize');
const fs = require('fs');
const path = require('path');

const sequelize = new Sequelize('reboot', 'root', 'tester', {
host: 'localhost',
dialect: 'mysql',
operatorsAliases: false,

pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
},
});

db = {
sequelize,
Sequelize,
models: {},
}

const dir = path.join(__dirname, 'model');

fs.readdirSync(dir)
.forEach(file => {
const modelDir = path.join(dir, file);
const model = sequelize.import(modelDir);
db.models[model.name] = model;
});



Object.keys(db.models).forEach(key => {
db.models[key].associate(db.models);
});

sequelize.authenticate()
.then(() => {
console.log('Connection has been established successfully.');
}).catch(err => {
console.error('Unable to connect to the database' , err);
});

module.exports = db;


const dbconn = require('./dbconn');

dbconn.sequelize.sync({force: true}).done(() => {

});


반응형

'엉터리 개발 이야기 > 개인프로젝트' 카테고리의 다른 글

참고코드 - routes  (0) 2018.11.28
참고 코드 - app.js  (0) 2018.11.28
VS Code Node 디버깅  (0) 2018.11.27
소스 예제  (0) 2018.11.26
[털사장 프로젝트] 모델링  (0) 2018.11.26