我的应用程序中有一个大型 WebSQL 数据库(最大 200 MB),并希望提供备份功能。有没有办法将整个数据库从默认位置复制到另一个位置?我已经有一个 JSON 导出,但是导出所有数据需要 5 分钟。日常备份不方便:(
快乐编码!
我的应用程序中有一个大型 WebSQL 数据库(最大 200 MB),并希望提供备份功能。有没有办法将整个数据库从默认位置复制到另一个位置?我已经有一个 JSON 导出,但是导出所有数据需要 5 分钟。日常备份不方便:(
快乐编码!
W3C 提到了 LOAD INPUT FILE,但表示没有理由在 WebSQL 中支持它。
WebSQL 数据库的本质是它存在于浏览器中。如果您可以编写将数据库导出到 JSON 文件的方法,为什么不编写一个脚本来从 JSON 文件重新创建数据库呢?
我找到了解决方案。数据库(在 android 上)在路径中
file://data/data/<packageName>/app_database/<dbname>.db
您可以使用 phonegap 的 copyTo 方法从那里复制文件。在恢复之前,我尝试通过执行关闭数据库
delete myDatabaseObject;
之后,您可以使用 copyTo 方法覆盖现有数据库。最后它必须像平常一样打开。
我知道这是一个非常古老的问题,对于 webSQL 路径有一个公认的答案,但我最近遇到了类似的情况,并在运行 Cordova 应用程序时检查了几个不同的 Android 设备。有人可能会发现知道正在使用其他数据库路径很有帮助。在运行 Android 11 时,一个是:file://data/data/<pkg_name>/app_webview/Default/databases/https_localhost_0/1
另一个(Android 4.4 kitkat)是:file://data/data/<pkg_name>/app_webview/databases/files__0/1
在 Windows 下在 nw.js 上运行,数据库位于:C:\Users<user_name>\AppData\Local\<app_name>\databases\file__0\1
在我检查的所有情况下,db 文件都被命名为“1”,没有扩展名,“files__0”有两个下划线字符。希望这个答案能帮助别人。