Изменить имя поля для атрибутов CreateAt/UpdateAt
Я пытаюсь смоделировать существующую таблицу MSSQL в SailsJS. Неудивительно, что таблицы в существующей базе данных имеют столбец createdAt и updatedAt, аналогичный тому, что генерируется инфраструктурой SailsJS.
Есть ли способ присвоить значение свойства, сгенерированного платформой SailsJS, атрибуту, который я определил? Например:
attributes: {
...
creationDate:{
columnName:'cre_dt',
type:'datetime',
defaultsTo: this.createdAt
}
...
}
Ответы
Ответ 1
Нет, но вы можете полностью отключить автогенерированное свойство и использовать свой собственный:
autoCreatedAt: false,
autoUpdatedAt: false,
attributes: {
creationDate: {
columnName: 'cre_dt',
type: 'datetime',
defaultsTo: function() {return new Date();}
},
updateDate: {
columnName: 'upd_dt',
type: 'datetime',
defaultsTo: function() {return new Date();}
}
},
//Resonsible for actually updating the 'updateDate' property.
beforeValidate:function(values,next) {
values.updateDate= new Date();
next();
}
См. Дополнение к документам Waterline.
Ответ 2
Вы можете переназначить следующий способ:
attributes: {
createdAt: {
type: 'datetime',
columnName: 'cre_dt'
},
updatedAt: {
type: 'datetime',
columnName: 'upd_dt'
},
// your other columns
}
Ответ 3
Теперь можно использовать autoCreatedAt
и autoUpdatedAt
для установки настраиваемого имени для этих полей, как описано в http://sailsjs.com/documentation/concepts/models-and-orm/model-settings#?autocreatedat
Если задана строка, эта строка будет использоваться как обычная имя поля/столбца для атрибута createdAt.