#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