2017-05-30 4 views
0

Sequelize cliで作成された2つのモデルがあります。第1のモデルはuser_numberであり、第2のモデルはemailSignである。Sequelize ormでカスケードが機能しません

これは私のuser_numberモデルです:

 '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; 
      }; 

私は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モデルです。破壊のための私のコードは、ID 5と

User_number.destroy({where:{id : 5}}).then(function(){ 

resp.status(200); 
) 

user_numberが削除されているが、emailSignは削除されません。

関連するものを削除するにはどうすればよいですかemailSign

マイSequelizeのバージョンは3.30.4

+0

https://stackoverflow.com/questions/23634139/sequelize-ondelete-not-working – FiftiN

+0

たTaNxそれは動作していません – majid

答えて

0

あなたはbelongsTo関連のonDeleteアクションを定義する必要がある

emailSign.belongsTo(models.user_number, { 
    foreignKey: 'user_number_id', 
    onDelete: 'CASCADE' 
}); 
関連する問題