21971/backend/src/db/migrations/1709231312007.js
2025-03-23 15:22:19 +00:00

92 lines
2.0 KiB
JavaScript

module.exports = {
/**
* @param {QueryInterface} queryInterface
* @param {Sequelize} Sequelize
* @returns {Promise<void>}
*/
async up(queryInterface, Sequelize) {
/**
* @type {Transaction}
*/
const transaction = await queryInterface.sequelize.transaction();
try {
await queryInterface.addColumn(
'java_codes',
'CodesSnippet',
{
type: Sequelize.DataTypes.TEXT,
},
{ transaction },
);
await queryInterface.addColumn(
'java_codes',
'ECodesSnippet',
{
type: Sequelize.DataTypes.TEXT,
},
{ transaction },
);
await queryInterface.removeColumn('java_codes', 'authorId', {
transaction,
});
await queryInterface.removeColumn('java_codes', 'title', { transaction });
await transaction.commit();
} catch (err) {
await transaction.rollback();
throw err;
}
},
/**
* @param {QueryInterface} queryInterface
* @param {Sequelize} Sequelize
* @returns {Promise<void>}
*/
async down(queryInterface, Sequelize) {
/**
* @type {Transaction}
*/
const transaction = await queryInterface.sequelize.transaction();
try {
await queryInterface.addColumn(
'java_codes',
'title',
{
type: Sequelize.DataTypes.TEXT,
},
{ transaction },
);
await queryInterface.addColumn(
'java_codes',
'authorId',
{
type: Sequelize.DataTypes.UUID,
references: {
model: 'users',
key: 'id',
},
},
{ transaction },
);
await queryInterface.removeColumn('java_codes', 'ECodesSnippet', {
transaction,
});
await queryInterface.removeColumn('java_codes', 'CodesSnippet', {
transaction,
});
await transaction.commit();
} catch (err) {
await transaction.rollback();
throw err;
}
},
};