hunt-blacklist-backend/migrations/20260721030413-add_rating_t...

46 lines
1.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

'use strict';
/** @type {import('sequelize-cli').Migration} */
module.exports = {
async up (queryInterface, Sequelize) {
const tableName = 'BlacklistReports'; // Убедитесь, что имя таблицы совпадает
const columns = ['toxic', 'cheater', 'afk', 'useless', 'griefer', 'smurf'];
for (const column of columns) {
// 1. Сначала конвертируем данные внутри колонки через SQL-запрос.
// В MySQL true — это 1, а false — это 0.
await queryInterface.sequelize.query(`
UPDATE \`${tableName}\`
SET \`${column}\` = CASE WHEN \`${column}\` = 1 THEN 10 ELSE 0 END
`);
// 2. Теперь безопасно меняем тип самой колонки на TINYINT
await queryInterface.changeColumn(tableName, column, {
type: Sequelize.TINYINT,
allowNull: false,
defaultValue: 0
});
}
},
async down (queryInterface, Sequelize) {
const tableName = 'BlacklistReports';
const columns = ['toxic', 'cheater', 'afk', 'useless', 'griefer', 'smurf'];
for (const column of columns) {
// Откат: если оценка меньше 5, возвращаем 1 (true), иначе 0 (false)
await queryInterface.sequelize.query(`
UPDATE \`${tableName}\`
SET \`${column}\` = CASE WHEN \`${column}\` < 5 THEN 1 ELSE 0 END
`);
// Возвращаем тип BOOLEAN
await queryInterface.changeColumn(tableName, column, {
type: Sequelize.BOOLEAN,
allowNull: false,
defaultValue: false
});
}
}
};