Подтвердить что ты не робот

Можно ли переименовать `createdAt` и` updatedAt` в sails.js/waterline

Используя Waterline ORM от SailsJS, мои значения по умолчанию для autoCreatedAt и autoUpdatedAt равны false, но мне все же нужно реализовать функциональность, просто используя разные имена полей (запрос DBA). Есть ли способ:

  • укажите разные имена столбцов для автоматически генерируемого поля или
  • вручную эмулировать то же поведение в определении атрибута, или
  • Могу ли я просто оставить пользовательские поля в схеме, например created_ts и updated_ts, для обновления с помощью триггеров в самой схеме базы данных (но мне все еще нужно, чтобы Waterline их читал)?

Спасибо заранее.

4b9b3361

Ответ 1

Я только что открыл два запроса на загрузку для реализации этой функции;

  • От одного до waterline-schema, чтобы строитель схемы учитывал это.
  • От одного до waterline, чтобы поведение временной метки работало так, как ожидалось.

Вы также можете выполнить эту проблему.

С этим объединением, в вашей модели, вместо того, чтобы иметь, например:

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'