queryInterface.addConstraint('table_name', {
fields: ['column_name'],
type: 'foreign key',
name: 'custom_fkey_constraint_name', // optional
references: {
table: 'target_table_name',
field: 'target_column_name'
},
onDelete: 'cascade',
onUpdate: 'cascade'
});
UserId: { // name of foreign key using naming convention
type: Sequelize.DataTypes.INTEGER,
references: {
model: { tableName: 'Users' }, // provide table name
key: 'id' // PK of the User Model
},
allowNull: false,
onUpdate: 'cascade',
onDelete: 'cascade',
},
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.sequelize.transaction((t) => {
return Promise.all([
queryInterface.addColumn('table_name', 'field_one_name', {
type: Sequelize.STRING
}, { transaction: t }),
queryInterface.addColumn('table_name', 'field_two_name', {
type: Sequelize.STRING,
}, { transaction: t })
])
})
},
down: (queryInterface, Sequelize) => {
return queryInterface.sequelize.transaction((t) => {
return Promise.all([
queryInterface.removeColumn('table_name', 'field_one_name', { transaction: t }),
queryInterface.removeColumn('table_name', 'field_two_name', { transaction: t })
])
})
}
};