Sequelize onDelete不工作

时间:2014-05-13 14:30:57

标签: javascript node.js associations has-many sequelize.js

我在两个模型之间有关联,如下所示:

对于联系人模型(在单独的文件中)

classMethods: {
      associate: function (models){
         Contact.belongsTo(models.User)
      }
}

对于用户(在单独的文件中)

classMethods: {
     associate: function (models){
        User.hasMany(models.Contact, {onDelete: 'CASCADE'})
     }
}

问题是当删除用户时,与用户相关的联系人没有删除任何关于我做错的建议会有帮助吗?

提前致谢

2 个答案:

答案 0 :(得分:3)

我认为你需要反过来定义它。

Contact.belongsTo(models.Users, {
    foreignKeyConstraint: true
    , onDelete: 'cascade'
})

答案 1 :(得分:0)

将关联更新为 User.hasMany(models.Contact, { onDelete: 'cascade', hooks: true })允许关联之间的钩子触发,以启用onDelete级联。改编自 sequelize docs

  

但是,添加钩子:true明确告诉Sequelize   优化与您无关,它会在   关联对象并逐个销毁每个实例,以便成为   能够使用正确的参数调用挂钩。