如何在Sequelize模型中禁用createdAt字段



我需要一个updatedAt字段,但不需要一个createdAt字段。

所以,我写了这个模型:

const Vote = sequelize.define('Vote', {
createdAt: false,
updatedAt: { type: DataTypes.DATE, allowNull: false },
type: { type: DataTypes.INTEGER, allowNull: true },
userId: { type: DataTypes.INTEGER, allowNull: false },
postId: { type: DataTypes.INTEGER, allowNull: false }
});

然而,当我试图查找一行时,由于某种原因,Sequelize包含createdAt。我也试过删除createdAt: false,但没有什么区别。

我是否只需要在所有查询中手动筛选出createdAt

这不应该由我的模特来控制吗?

谢谢!

好的,所以您可以通过禁用时间戳来禁用createdAt,同时保留updatedAt,然后手动添加回具有文字时间戳类型的updatedAt,将updatedAt自动设置为正常。

像这样:

updatedAt: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: sequelize.literal('CURRENT_TIMESTAMP')
},
type: { type: DataTypes.INTEGER, allowNull: true },
userId: { type: DataTypes.INTEGER, allowNull: false },
postId: { type: DataTypes.INTEGER, allowNull: false }
},
{ timestamps: false }
);

最新更新