pouchdb复制未完成,仅停留在待处理文档中

时间:2018-09-07 09:33:43

标签: ionic3 couchdb pouchdb

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

运行ionic serve的应用正常运行。

应用程序:

  

离子3   具有cordova-sqlite插件(2.0.3)的PouchDB(6.4.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 

1 个答案:

答案 0 :(得分:0)

在学习如何一起使用PouchDb / CouchDb的同时,可能会使同步指针处于怪异状态。

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

我发现有必要创建CURL脚本以完全重建我的测试数据库,然后再花费大量精力来追查为什么某事不起作用。

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

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