UNPKG

@tomei/finance

Version:

NestJS package for finance module

72 lines (63 loc) 2.31 kB
'use strict'; 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; } } };