У меня есть две таблицы в sequelize, и они имеют много общего друг с другом.У меня есть третья соединительная таблица, и я хочу удалить каскадную строку из соединительной таблицы, когда строка удаляется из двух таблиц.
Версия Sequelize: 3.23.0
Я пробовал различные возможности для созданиятаблица sequelize
a) Добавление хуков внутри ассоциации b) Добавление внешнего ключа внутри ассоциации соединительной таблицы c) Скрипт миграции (https://sequelize.readthedocs.io/en/v3/docs/migrations/) из sequelize (ранее не использовался в проекте)
Ниже приведены мои последующие модели
- Модели продуктов
var product = sequelize.define('product', {
name: {
type: DataTypes.STRING,
allowNull: false
},
{
timestamps: false,
classMethods: {
associate: function (models) {
product.belongsToMany(models.users, {through: 'productUsers', onDelete: 'cascade'});
}
}
});
2.Пользовательская модель:
var users = sequelize.define('users', {
name: {type: DataTypes.STRING, allowNull: false, unique: true},
},
{
classMethods: {
associate: function(models) {
users.belongsToMany(models.product, {through:'productUsers', onDelete: 'cascade'});
}
}
});
таблица соединений productUsers
var productUsers = sequelize.define('productUsers', {
}, {
classMethods: {
associate: function (models) {
productUsers.belongsTo(models.product,{onDelete:'cascade'});
productUsers.belongsTo(models.model,{onDelete:'cascade'});
}
}
},
{
timestamps: true
});
Теперь я хочу удалить каскадную строку из таблицы productUsers, когда продукт удален или пользователь удален.Но ничего не удаляется из соединительной таблицы.