我在节点开发中使用 sequelize.js 库作为ORM。使用 sequelize 更新行时,' updated_at' 字段已更改为当前时间戳。 我想知道如何防止这种情况发生?如果不更改< update_at' 字段,我想使用sequlize API更新其他字段,而不是运行raw查询。
答案 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
});
否则,您可以关闭时间戳并按需要手动处理它们。