2014-05-13 57 views
2

我有如下定義的兩個模型之間的關聯:Sequelize onDelete不工作

對於接觸模型(在一個單獨的文件)

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

對於用戶(在一個單獨的文件)

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

問題是,刪除用戶時,與用戶相關的聯繫人沒有刪除任何關於我在做什麼錯誤會有幫助的建議?

在此先感謝

回答

4

我想你需要定義它的另一種方式。

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

謝謝,這對我很有用。該文檔在某種程度上具有誤導性。在文檔中,belongsTo沒有onDelete ='CASCADE'選項,只有hasMany擁有它。它應該是真的有其他方法。 – Liwen

+1

這種方式與'onDelete:'cascade''一起工作嗎? [documentation](http://sequelize.readthedocs.org/en/latest/api/associations/index.html?highlight=onDelete#hasmanytarget-options)僅顯示hasMany函數的'cascade'選項。我有點困惑。 – JuHwon

+2

我必須按照記錄(現在)做下列事情。 User.hasOne(Profile,{onDelete:'cascade',hooks:true}) –