'use strict'; /** @type {import('sequelize-cli').Migration} */ module.exports = { async up (queryInterface) { await queryInterface.removeColumn('group_users', 'deletedAt'); // Cleanup any rows with duplicate groupId + userId await queryInterface.sequelize.query(` DELETE FROM group_users WHERE "createdAt" NOT IN ( SELECT MIN("createdAt") FROM group_users GROUP BY "groupId", "userId" ) `); // Add groupId + userId as primary key await queryInterface.addConstraint('group_users', { fields: ['groupId', 'userId'], type: 'primary key', name: 'group_users_pkey' }); await queryInterface.removeIndex("group_users", "group_users_group_id_user_id"); }, async down (queryInterface, Sequelize) { await queryInterface.addIndex("group_users", ["groupId", "userId"]); await queryInterface.removeConstraint('group_users', 'group_users_pkey'); await queryInterface.addColumn('group_users', 'deletedAt', { type: Sequelize.DATE, allowNull: true }); } };