在ionic上使用“ .backup”命令时出现问题。返回语法错误

时间:2019-10-23 20:12:58

标签: android cordova ionic-framework

我正在尝试从我的应用程序创建数据库的本地备份。为了完成此任务,我在javascript中创建了以下函数:

$rootScope.CriarBackupDoBanco = function () {
        var fileTransfer = new FileTransfer();
        var url = 'file://mnt/sdcard/';
        var fileName = 'database_test.db';
        var store = cordova.file.dataDirectory;
        try {
            DBA.query('.backup file://mnt/sdcard/DBtest.db').then(function (result) {
                return DBA.getAll(result);
            });
        }
        catch (e) {
            console.log(e);
        }

不确定是否有帮助,这是DBA工厂的查询功能:


    // Handle query's and potential errors
    self.query = function (query, parameters) {
        parameters = parameters || [];
        var q = $q.defer();

        $ionicPlatform.ready(function () {
            DB.executeSql(query, parameters, function (result) {
                q.resolve(result);
            }, function (error) {
                console.warn('Error DBA:');
                error.DBA_query = query;
                error.DBA_parameters = parameters;
                console.warn(error);
                q.reject(error);
            });
        });
        return q.promise;
    }

但是,它返回语法错误,同时带有“ backup”和“ .backup”。将“ DBtest.db”更改为“ file://mnt/sdcard/DBtest.db”也没有效果。

我将这些站点用作参考:
How to backup sqlite database?

SQL script to "copy" a database

https://www.quackit.com/sqlite/tutorial/backup_a_database_to_file.cfm

使用window.resolveLocalFileSystemURL(path,OnSuccess(),OnError()),没有结果,无论成功还是失败,都好像跳过了一样。 (也许是Cordova上的错误?)。

我还确认了DBA.query()函数可以通过使用诸如select,insert,create,delete之类的命令来工作。

我的程序应在API版本19或更高版本的Android上运行。 我正在使用Ionic 1。 AngularJS和Cordova 9.0.0。

显示的错误是: “。附近有语法错误”(使用.backup时)或“备份附近有语法错误”(使用备份时)

1 个答案:

答案 0 :(得分:0)

并不是我想要的,但是它可以工作。

使用SQLite Porter Cordova / Phonegap插件(https://www.npmjs.com/package/uk.co.workingedge.cordova.plugin.sqliteporter

此插件允许将数据库导出/导入为JSON或SQL。因此,尽管它并未按我的意愿创建.db文件,但它仍然使我能够创建用作备份的文本。