SequelizeForeignKeyConstraintError При попытке обновления по идентификатору

#mysql #node.js #sequelize.js #nodes

#mysql #node.js #sequelize.js #узлы

Вопрос:

У меня есть две модели:

 const CompanyGroup = db.define('company_group', {
  id: {
    allowNull: false,
    autoIncrement: true,
    primaryKey: true,
    type: Sequelize.INTEGER
  },
  name: {
    allowNull: false,
    type: Sequelize.STRING
  },
  createdAt: {
    defaultValue: new Date(),
    field: 'created_at',
    type: Sequelize.DATE
  },
  updatedAt: {
    defaultValue: new Date(),
    field: 'updated_at',
    type: Sequelize.DATE
  }
}, {
  freezeTableName: true
})
 

и

 const Company = db.define('company', {
  id: {
    allowNull: false,
    defaultValue: Sequelize.UUIDV4,
    primaryKey: true,
    type: Sequelize.UUID,
    unique: true
  },
  groupId: {
    allowNull: true,
    field: 'group_id',
    type: Sequelize.INTEGER,
    references: { model: 'company_group', foreignKey: 'id' }
  }
... other columns
}, {
  paranoid: true,
  deletedAt: 'deleted_at',
  freezeTableName: true
})
 

Я пытаюсь создать связь между company_group и company, обновив столбец group_id в таблице company существующим идентификатором, и у меня возникает следующая ошибка:

SequelizeForeignKeyConstraintError: не удается добавить или обновить дочернюю строку: сбой ограничения внешнего ключа ( name_of_my_company . company , CONSTRAINT company_group_id_foreign_idx FOREIGN KEY ( group_id ) ССЫЛКИ company_group ( id )) …

запрос, который вызывает ошибку:

   async linkGroup(companiesIds, groupId) {
    const linkedCompaniesIds = await this.getlinkedCompaniesIds(groupId)

    const promises = _.map(companiesIds, async (id) => {
      if (_.includes(linkedCompaniesIds, id)) return id

      await this._repository.updateById(id, { groupId })

      return id
    })
    return Promise.all(promises)
  }
 

кто-нибудь знает, как я могу решить эту проблему?

Комментарии:

1. Пожалуйста, попробуйте опубликовать запрос, который вызывает ошибку.

2. показать updateById