sequelize - 更新行而不更改updated_at字段

时间:2016-03-16 09:18:56

标签: node.js orm sequelize.js

我在节点开发中使用 sequelize.js 库作为ORM。使用 sequelize 更新行时,' updated_at' 字段已更改为当前时间戳。 我想知道如何防止这种情况发生?如果不更改< update_at' 字段,我想使用sequlize API更新其他字段,而不是运行raw查询。

2 个答案:

答案 0 :(得分:1)

根据http://docs.sequelizejs.com/class/lib/model.js~Model.html#static-method-update,您可以使用“静默”选项来运行更新查询,但不能更新updateAt字段。

  

options.silent布尔值
  可选
  默认值:false
  如果为true,则updateAt时间戳将不会更新。

myModelInstance.update(values, {
    silent: true
})

答案 1 :(得分:0)

在模型定义中,您可以turn timestamps off获取特定字段。

  

如果你想要sequelize来处理时间戳,但只想要其中一些,或者想让你的时间戳被调用,你可以单独覆盖每一列:

var Foo = sequelize.define('foo',  { /* bla */ }, {
  // don't forget to enable timestamps!
  timestamps: true,

  // I don't want createdAt
  createdAt: false,

  // I want updatedAt to actually be called updateTimestamp
  updatedAt: 'updateTimestamp'

  // And deletedAt to be called destroyTime (remember to enable paranoid for this to work)
  deletedAt: 'destroyTime',
  paranoid: true
});

否则,您可以关闭时间戳并按需要手动处理它们。