【发布时间】:2016-05-04 23:16:01
【问题描述】:
我们正在认真探索 Ionic、PouchDb 和 CouchDb,作为我们需要构建一个可以提供离线同步功能并且与平台无关的移动应用程序的需求之一的解决方案。
我们还有一个主要要求,离线模式下的数据本质上是持久性的,并且可以增长超过 500 MB,并且由于 PouchDb 将使用 IndexedDB / WebSQL 适配器等在离线模式下存储数据,它在移动和网络平台上有一定的大小限制,并且数据本质上不是持久性的。
然后我在 pouchdb 网站本身发现了这篇文章:
您可以在哪里使用 Cordova 的 SQLite 插件,您可以编写如下内容:
强制 PouchDb 使用 SQLite 插件。
var db = new PouchDB('myDB', {adapter: 'websql'});
但是当我使用以下代码测试代码以检查 WebSql 适配器是否使用 SQLite 插件时,无论是在 Android(chrome 远程调试)还是 Web 平台。
db.info().then(console.log.bind(console));
sqlite_plugin 总是返回 false 并且它没有创建任何 .db 文件。虽然 PouchDb 和 CouchDb 同步工作正常。
Object {doc_count: 5, update_seq: 42, sqlite_plugin: false, websql_encoding: "UTF-8", db_name: "birthdays"…}
1. adapter: "websql"
2. auto_compaction: false
3. db_name: "testDb"
4. doc_count: 5
5. sqlite_plugin: false
6. update_seq: 42
7. websql_encoding: "UTF-8"
8. __proto__: Object
And also it mentioned
SQLite 插件当前未通过 PouchDB 测试套件。它 也往往比直接 IndexedDB/WebSQL 慢。我们推荐 避免使用 SQLite 插件,除非您使用 50MB 存储空间 在 iOS 中存在限制,或者您需要对数据库进行本机或预加载访问 文件。
我使用以下命令安装 SQLite 插件:
cordova plugin add https://github.com/brodysoft/Cordova-SQLitePlugin.git
这里是离子版本信息: Click to see the Ionic version information currently using by me.
PouchDB 版本:5.2.0
如果有人能帮助我解决这个问题,我将不胜感激。提前致谢。
【问题讨论】:
-
我也遇到了同样的错误。你解决了吗?
标签: sqlite cordova ionic-framework couchdb pouchdb