PouchDB 复制未完成,只是坚持待处理的文档



我正在尝试在我的 Ionic 3 应用程序中进行过滤复制,但在阅读了一些文档后,它卡住了待处理的文档,并且也没有触发完整的事件。当我在移动设备上构建和运行应用程序时,就会发生这种情况。

使用ionic serve运行的应用程序工作正常。

应用程序:

离子 3 PouchDB(6.4.3( with cordova-sqlite plugin(2.0.3( 沙发版本:2.1.2

配置

PouchDB.plugin(require('pouchdb-find').default);
PouchDB.plugin(cordovaSqlitePlugin);
this.db = new PouchDB(gstin, {
adapter: 'cordova-sqlite', location: 'default'
});

复制选项:

{
filter: 'Generic/xxxxx',
query_params: {
id: xxx,
deviceId: xxxx
},
batch_size: 10
}

最后更改控制台,

{
ok: true,
start_time: "2018-09-07T09:18:16.204Z",
docs_read: 136,
docs_written: 136,
doc_write_failures: 0, …}
doc_write_failures:0
docs:(11) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
docs_read:136
docs_written:136
errors:Array(0)
length:0
__proto__:Array(0)
last_seq:"xxxxxx"
ok:true
pending:402
start_time:"2018-09-07T09:18:16.204Z"
__proto__:Object 

在学习一起使用它们的同时,修改 PouchDb/CouchDB 可能会使同步指针处于奇怪的状态。

我可以建议您尝试使用全新的数据库实例吗?

我发现有必要创建 CURL 脚本来完全重建我的测试数据库,然后再花费任何认真的努力来追踪为什么某些东西不起作用。

我相信,如果您要显示正在使用的过滤器以及复制命令的完整代码,而不仅仅是选项,您可以在此处获得更多帮助。

更新:我还强烈建议您创建一个简单的 CouchDb 服务器(或免费层 Cloudant 数据库(,并使用默认服务(而不是 cordova-sqlite(创建一个非常简单的浏览器应用程序,并测试您对复制工作方式的假设。

最新更新