trade-frontend/migrations/20240824145239-update-order-money-types.cjs

74 lines
1.6 KiB
JavaScript
Raw Normal View History

2025-06-02 11:40:07 +05:00
'use strict';
async function updateColumnType(queryInterface, table, column, type, transaction) {
await queryInterface.changeColumn(
table,
column,
{
type: `${type} USING CAST("${column}" as ${type})`,
},
{ transaction },
);
}
/** @type {import('sequelize-cli').Migration} */
module.exports = {
async up(queryInterface, Sequelize) {
await queryInterface.sequelize.transaction(async (transaction) => {
await updateColumnType(queryInterface, 'Orders', 'price', 'VARCHAR', transaction);
await updateColumnType(queryInterface, 'Orders', 'amount', 'VARCHAR', transaction);
await updateColumnType(queryInterface, 'Orders', 'total', 'VARCHAR', transaction);
await updateColumnType(queryInterface, 'Orders', 'left', 'VARCHAR', transaction);
await updateColumnType(
queryInterface,
'Transactions',
'amount',
'VARCHAR',
transaction,
);
});
},
async down(queryInterface, Sequelize) {
queryInterface.sequelize.transaction(async (transaction) => {
await updateColumnType(
queryInterface,
'Orders',
'price',
'DOUBLE PRECISION',
transaction,
);
await updateColumnType(
queryInterface,
'Orders',
'amount',
'DOUBLE PRECISION',
transaction,
);
await updateColumnType(
queryInterface,
'Orders',
'total',
'DOUBLE PRECISION',
transaction,
);
await updateColumnType(
queryInterface,
'Orders',
'left',
'DOUBLE PRECISION',
transaction,
);
await updateColumnType(
queryInterface,
'Transactions',
'amount',
'DOUBLE PRECISION',
transaction,
);
});
},
};