使用更新某些列的 updateOnDuplicate 时,sequelize 中的“afterBulkCreate”挂钩始终返回 _previousDataValues 中的最新值

问题描述 投票:0回答:1
  Table.addHook('afterBulkCreate' , async (params , options) => {
    console.log("Table.afterBulkCreate ~ params:", params , options)
  })

  const st1 = await Table.bulkCreate(params, {
      updateOnDuplicate: ["metrics", "status" ]
    })

dataValues
_previousDataValues
类似,
_changed: Set(0) {},
也是空集。即使行已正确更新。

我尝试使用

individualHooks: true
它提供了单独的钩子,但仍然没有以前的值。可能
bulkCreate
不会给出使用
previousValues
更新的
DUPLICATE KEY
。我也尝试过使用
afterUpdate
Hooks ,这个钩子没有被触发。

我正在尝试为以前和当前的值创建审核日志。

node.js mariadb sequelize.js
1个回答
0
投票

您可以使用 beforeBulkCreate 钩子,您可以在其中对表进行查找查询以获取以前的值。

Table.beforeBulkCreate(async (params,options) => {
  const previousRecords = await Table.findAll();
})
© www.soinside.com 2019 - 2024. All rights reserved.