将WebSQL数据库复制到其他位置

Copy WebSQL database to another location

本文关键字:其他 位置 复制 WebSQL 数据库      更新时间:2023-09-26

我的应用程序中有一个很大的WebSQL数据库(高达200 MB(,我想提供备份功能。有没有办法将整个数据库从默认位置复制到另一个位置?我已经有一个JSON导出,但导出所有数据需要5分钟。它对日常备份不方便:(

快乐的编码!

W3C提到了LOAD INPUT FILE,但表示没有理由在WebSQL中支持它。

WebSQL数据库的本质是它存在于浏览器中。如果您可以编写一个方法将数据库导出到JSON文件中,为什么不编写一个脚本从JSON文件中重新创建数据库呢?

我找到了一个解决方案。数据库是(在安卓系统上(在路径

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''<应用程序名称>''数据库''文件''0''1

数据库文件名为";1〃;在我检查的所有情况下都没有扩展;文件__0";有两个下划线字符。希望这个答案能帮助到别人。