Я делаю простой хранилище сеансов от bookshelfjs
, но мне нужно правильно установить столбец timestamp. Я пытаюсь написать ТТЛ столбец с компанией() + ТТЛ интервал 1мса, но я не могу вспомнить, как сделать это, или как вызвать сырец контента для этой колонки:Как написать это в Bookshelfjs и knex
var Session = Models.Bookshelf.Model.extend({
tableName: 'sessions',
idAttribute: 'id'
},{
get: Promise.method(function(sid){
console.log("Fetching SID = ", sid);
return new this({id: sid}).fetch();
}),
set: Promise.method(function(sid, session, ttl){
console.log("Setting SID = ", sid);
console.log("Setting SID session = ", session);
console.log("Setting SID ttl = ", ttl);
new this({id: sid}).save({session: session, expiry: "(now() + " + ttl + " * interval '1 ms')" });
}),
destroy: Promise.method(function(sid){
this.destroy({id: sid});
})
});
Оригинальных Запрос из коа-пг-сессии является:
UPDATE %I.%I SET session = $1, expiry = (now() + $2 * interval '1 ms') WHERE id = $3;
Я уверен, что это с сырым форматировщиком запроса Knex, но я не могу найти правильную часть в документации для установки значения столбца. Я не хочу писать полный запрос в строке, я хочу знать, как это сделать только для единственного столбца «expiry».
То есть на самом деле, как я понял это прошлой ночью, и я приехал сюда опубликовать результат: новый ({id: sid}). save ({session: session, expiry: this.Bookshelf.knex.raw ("(now() +" + ttl + "* interval '1 ms «)")}); –