我需要一个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 }
);