Sequelize composite unique (manual)
module.exports = { up: (queryInterface, Sequelize) => { return queryInterface.createTable('Model', { id: { allowNull: false, autoIncrement: true, primaryKey: true, type: Sequelize.INTEGER }, fieldOne: { type: Sequelize.INTEGER, unique: 'uniqueTag', allowNull: false, references: { model: 'Model1', key: 'id' }, onUpdate: 'cascade', onDelete: 'cascade' }, fieldsTwo: { type: Sequelize.INTEGER, unique: 'uniqueTag', allowNull: false, references: { model: 'Model2', key: 'id' }, onUpdate: 'cascade', onDelete: 'cascade' }, createdAt: { allowNull: false, type: Sequelize.DATE }, updatedAt: { allowNull: false, type: Sequelize.DATE } }) .then(function() { return queryInterface.sequelize.query( 'ALTER TABLE 'UserFriends' ADD UNIQUE 'unique_index'('fieldOne', 'fieldTwo')' ); }); }, down: (queryInterface, Sequelize) => { return queryInterface.dropTable('Model'); } };
source share