Sequelize проблема создания ассоциации с множеством первичных ключей

Есть две таблицы

Первая

module.exports = (db, DataTypes) =>
  db.define(
    "equipments",
    {
      id: {
        type: DataTypes.INTEGER,
        primaryKey: true,
        allowNull: false,
      },
      slotId: {
        type: DataTypes.STRING,
        primaryKey: true,
        allowNull: false,
      },
      itemId: {
        type: DataTypes.INTEGER,
        allowNull: false,
      },
      count: { type: DataTypes.INTEGER, defaultValue: 1 },
    },
    {}
  );

Вторая

module.exports = (db, DataTypes) =>
  db.define(
    "users",
    {
      name: DataTypes.STRING,
    },
    {}
  );

При попытке создать связь между этими таблицами

  Equipments.hasMany(Users, { onDelete: "CASCADE", onUpdate: "CASCADE" });
  Users.belongsTo(Equipments);

Sequelize создает поле в целевой таблице с именем таблицы + первичный ключ, с которым он будет связывать, но после инициализации связь не создается.

CREATE TABLE IF NOT EXISTS `users` (
    `id` INTEGER NOT NULL auto_increment,
    `name` VARCHAR(255),
    `createdAt` DATETIME NOT NULL,
    `updatedAt` DATETIME NOT NULL,
    `equipmentId` INTEGER,
    PRIMARY KEY (`id`),
    SET
        NULL ON UPDATE CASCADE
) ENGINE = InnoDB;

Если указать в первой таблице только один первичный ключ, то связь создаётся. Есть ли способы решения данной проблемы ? Или же есть моменты в самом API, который нужно было использовать в данной ситуации с несколькими первичными ключами?


Ответы (0 шт):