'use strict'; module.exports = { async up(queryInterface, Sequelize) { const columns = await queryInterface.describeTable('users'); if (!columns.login) { await queryInterface.addColumn('users', 'login', { type: Sequelize.STRING(255), allowNull: true, }); } await queryInterface.sequelize.query( "UPDATE `users` SET `login` = `email` WHERE `login` IS NULL OR `login` = ''", ); await queryInterface.changeColumn('users', 'login', { type: Sequelize.STRING(255), allowNull: false, }); const indexes = await queryInterface.showIndex('users'); if (!indexes.some((index) => index.name === 'users_login_unique')) { await queryInterface.addIndex('users', ['login'], { name: 'users_login_unique', unique: true, }); } }, async down(queryInterface) { const indexes = await queryInterface.showIndex('users'); if (indexes.some((index) => index.name === 'users_login_unique')) { await queryInterface.removeIndex('users', 'users_login_unique'); } const columns = await queryInterface.describeTable('users'); if (columns.login) await queryInterface.removeColumn('users', 'login'); }, };