@tomei/finance
Version:
NestJS package for finance module
72 lines (63 loc) • 2.31 kB
JavaScript
;
module.exports = {
up: async (queryInterface, Sequelize) => {
const transaction = await queryInterface.sequelize.transaction();
try {
//Update column type to string
await queryInterface.changeColumn('finance_Document', 'Status', {
type: Sequelize.STRING(30),
allowNull: false,
}, { transaction });
// Update inconsistent data before changing the enum values
await queryInterface.sequelize.query(`
UPDATE finance_Document
SET Status = 'Settled'
WHERE Status = 'Paid'
`, { transaction });
await queryInterface.sequelize.query(`
UPDATE finance_Document
SET Status = 'Partial Settled'
WHERE Status = 'Partial Paid'
`, { transaction });
// Change the column to the new enum values
await queryInterface.changeColumn('finance_Document', 'Status', {
type: Sequelize.ENUM(['Unpaid', 'Settled', 'Partial Settled', 'Cancelled']), // new enum values
allowNull: false,
}, { transaction });
await transaction.commit();
} catch (error) {
await transaction.rollback();
throw error;
}
},
down: async (queryInterface, Sequelize) => {
const transaction = await queryInterface.sequelize.transaction();
try {
//Update column type to string
await queryInterface.changeColumn('finance_Document', 'Status', {
type: Sequelize.STRING(30),
allowNull: false,
}, { transaction });
// Update inconsistent data before changing the enum values
await queryInterface.sequelize.query(`
UPDATE finance_Document
SET Status = 'Paid'
WHERE Status = 'Settled'
`, { transaction });
await queryInterface.sequelize.query(`
UPDATE finance_Document
SET Status = 'Partial Paid'
WHERE Status = 'Partial Settled'
`, { transaction });
// Change the column to the new enum values
await queryInterface.changeColumn('finance_Document', 'Status', {
type: Sequelize.ENUM(['Unpaid', 'Paid', 'Partial Paid', 'Cancelled']), // new enum values
allowNull: false,
}, { transaction });
await transaction.commit();
} catch (error) {
await transaction.rollback();
throw error;
}
}
};