@tomei/product
Version:
NestJS package for product module
76 lines (74 loc) • 2.19 kB
JavaScript
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.sequelize.transaction(async (transaction) => {
await queryInterface.dropTable('product_ProductCategory', { transaction });
await queryInterface.createTable('product_ProductCategory', {
ProductCategoryId: {
allowNull: false,
primaryKey: true,
type: Sequelize.STRING,
},
ProductId: {
allowNull: false,
type: Sequelize.STRING,
references: {
model: 'product_Product',
key: 'ProductId',
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE',
},
Code: {
allowNull: false,
type: Sequelize.STRING,
references: {
model: 'product_Category',
key: 'Code',
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE',
},
}, { transaction });
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.sequelize.transaction(async (transaction) => {
await queryInterface.dropTable('product_ProductCategory', { transaction });
await queryInterface.createTable('product_ProductCategory', {
ProductId: {
allowNull: false,
primaryKey: true,
type: Sequelize.STRING,
references: {
model: 'product_Product',
key: 'ProductId',
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE',
},
Code: {
allowNull: false,
primaryKey: true,
type: Sequelize.STRING,
references: {
model: 'product_Category',
key: 'Code',
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE',
},
CreatedAt: {
allowNull: false,
defaultValue: new Date(),
type: Sequelize.DATE,
},
UpdatedAt: {
allowNull: false,
defaultValue: new Date(),
type: Sequelize.DATE,
},
}, { transaction });
});
}
};