使用SailsJS中的Waterline ORM,我的autoCreatedAt
和autoUpdatedAt
的默认值设置为false,但我仍然需要使用不同的字段名(DBA请求)来实现该功能。有没有办法:
- 为自动生成的字段指定不同的列名,或者
- 手动模拟属性定义中的相同行为,或
- 我可以在模式中留下自定义字段,如
created_ts
和updated_ts
,以更新数据库模式本身的触发器(但我仍然需要水线来读取它们)?
我刚刚打开了两个pull request来实现这个特性;
- 一个到水线模式以便模式构建器考虑到这一点
- 1到水线,以便时间戳行为按预期工作。
你也可以关注这个问题。
合并后,在您的模型中,而不是例如:
autoCreatedAt: false,
autoUpdatedAt: false,
attributes: {
creationDate: {
columnName: 'created_ts',
type: 'datetime',
defaultsTo: function() {return new Date();}
},
updateDate: {
columnName: 'updated_ts',
type: 'datetime',
defaultsTo: function() {return new Date();}
}
},
beforeUpdate:function(values,next) {
values.updateDate = new Date();
next();
}
你可以这样做:
autoCreatedAt: 'created_ts',
autoUpdatedAt: 'updated_ts'