'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 }); } } };