我创建了PouchDB,但没有创建修订版
var db = new PouchDB('test1', {
revs_limit: 1,
auto_compaction: true
});
当我在chrome中检查indexedDB时,看起来修改存储在那里。我想保持db的大小,因为它在cordova项目中使用,不需要与CouchDB同步。
PouchDB.version ===" 5.3.2"。
这是PouchDB中的一个错误,还是我错过了什么?
function upsert(id, title) {
var obj;
return db.get(id)
.then(function (doc) {
obj = { // UPDATE
_id: id,
_rev: doc._rev,
title: title
};
return db.put(obj)
.then(function (res) {
console.log('updated', res);
})
.catch(function (e) {
console.error('update error', obj, e);
});
})
.catch(function (e) {
if (e.status === 404) {
obj = { // INSERT
_id: id,
title: title
};
return db.put(obj)
.then(function (res) {
console.log('inserted', res);
})
.catch(function (e) {
console.error('insert error', obj, e);
});
}
console.error('another error', e);
});
}
var db = new PouchDB('test1', {
revs_limit: 1,
auto_compaction: true
});
var id = '666-' + (new Date()).toISOString();
var serializer;
console.log('Test started with\nid = ' + id);
db.then(function () {
for (var i = 0; i < 5; i++) {
if (!serializer) {
serializer = upsert(id, 'Heroes');
} else {
serializer = serializer
.then(function () {
return upsert(id, 'Heroes')
});
}
}
});
答案 0 :(得分:0)
AFAIK,此问题a closed bug于2016年2月部分修复,然后于2016年6月完全修复。
设置auto_compaction: true
时,使用revs_limit:1
是多余的(因为将不会压缩任何内容)。 (将两者一起使用会触发错误,但此问题已在2016年修复。)
如another closed bug report底部所述,即使您使用revs_limit
或auto_compaction
,Chrome也会看起来内存在增长。但是当您达到4MB时,它将一口气进行压缩。这是设计使然,因此pouchDB中的错误也不是Chrome中的错误。
(只是认为我会回答在讨论过程中花费15分钟来救下一个人!)