我有两个使用 Sequelize cli 创建的模型;第一个模型是 user_number
,第二个模型是 emailSign
。
这是我的user_number
模型:
'use strict';
module.exports = function(sequelize, DataTypes) {
var user_number = sequelize.define('user_number', {
user_id: DataTypes.INTEGER,
callRoute_id: DataTypes.INTEGER,
password: DataTypes.STRING,
}, {
underscored: true,
classMethods: {
associate: function(models) {
// associations can be defined here
user_number.hasMany(models.emailSign, {
foreignKey: 'user_number_id',
onDelete: "CASCADE",
});
}
}
});
return user_number;
};
这是我的 emailSign
模型:
'use strict';
module.exports = function(sequelize, DataTypes) {
var emailSign = sequelize.define('emailSign', {
email: DataTypes.STRING,
user_number_id: DataTypes.INTEGER
}, {
underscored: true,
classMethods: {
associate: function(models) {
// associations can be defined here
emailSign.belongsTo(models.user_number, {
foreignKey: 'user_number_id',
})
}
}
});
return emailSign;
};
我想销毁user_number
以级联删除emailSign
。我的销毁代码是
User_number.destroy({where:{id : 5}}).then(function(){
resp.status(200);
)
id 为 5 的 user_number
已删除,但 emailSign
未删除。
如何删除相关的emailSign
?
我的 Sequelize 版本是 3.30.4
最佳答案
您应该在belongsTo关联上定义onDelete操作
emailSign.belongsTo(models.user_number, {
foreignKey: 'user_number_id',
onDelete: 'CASCADE'
});
关于node.js - 销毁级联在 Sequelize orm 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44273155/