Sequelize - Удалить строку в соединительной таблице, если две таблицы имеют ассоциацию ToTany. - PullRequest
1 голос
/ 03 мая 2019

У меня есть две таблицы в sequelize, и они имеют много общего друг с другом.У меня есть третья соединительная таблица, и я хочу удалить каскадную строку из соединительной таблицы, когда строка удаляется из двух таблиц.

Версия Sequelize: 3.23.0

Я пробовал различные возможности для созданиятаблица sequelize

a) Добавление хуков внутри ассоциации b) Добавление внешнего ключа внутри ассоциации соединительной таблицы c) Скрипт миграции (https://sequelize.readthedocs.io/en/v3/docs/migrations/) из sequelize (ранее не использовался в проекте)

Ниже приведены мои последующие модели

  1. Модели продуктов
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, когда продукт удален или пользователь удален.Но ничего не удаляется из соединительной таблицы.

...