diff --git a/server/migrations/20240329012958-remove-old-role-columns.js b/server/migrations/20240329012958-remove-old-role-columns.js new file mode 100644 index 000000000..270b52b9b --- /dev/null +++ b/server/migrations/20240329012958-remove-old-role-columns.js @@ -0,0 +1,42 @@ +'use strict'; + +module.exports = { + async up(queryInterface) { + await queryInterface.sequelize.transaction(async (transaction) => { + await queryInterface.removeColumn("users", "isAdmin", { transaction }); + await queryInterface.removeColumn("users", "isViewer", { transaction }); + }); + }, + + async down(queryInterface, Sequelize) { + await queryInterface.sequelize.transaction(async (transaction) => { + await queryInterface.addColumn("users", "isAdmin", { + type: Sequelize.BOOLEAN, + allowNull: false, + defaultValue: false, + }); + await queryInterface.addColumn("users", "isViewer", { + type: Sequelize.BOOLEAN, + allowNull: false, + defaultValue: false, + }); + }); + + await queryInterface.sequelize.transaction(async (transaction) => { + await queryInterface.sequelize.query( + `UPDATE users SET "isAdmin" = true WHERE role = 'admin'`, + { + transaction, + type: Sequelize.QueryTypes.UPDATE, + } + ); + await queryInterface.sequelize.query( + `UPDATE users SET "isViewer" = true WHERE role = 'viewer'`, + { + transaction, + type: Sequelize.QueryTypes.UPDATE, + } + ); + }); + } +}; \ No newline at end of file