39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
'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');
|
|
},
|
|
};
|