Проблемы с использованием команды .backup на ionic. Возврат синтаксической ошибки - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь создать локальную резервную копию базы данных из моего приложения. Для этого я создал следующую функцию в 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». Изменение «file: //mnt/sdcard/DBtest.db» для «DBtest.db» также не показало никакого эффекта.

Я использовал в качестве ссылки эти сайты:
Как сделать резервную копию базы данных sqlite?

SQL-скрипт для «копирования» базы данных

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

Использование window.resolveLocalFileSystemURL (path, OnSuccess (),OnError ()), не показывал ни результатов, ни успеха, ни неудачи, как бы пропуская ее. (Возможно, ошибка в cordova?).

Я также подтвердил, что моя функция DBA.query () работает с использованием таких команд, как select, insert, create, delete.

Моя программа должна работатьAndroid с API версии 19 или новее. Я использую Ionic 1. AngularJS и Cordova 9.0.0.

Показанная ошибка: «Синтаксическая ошибка рядом.» (При использовании .backup) или «Синтаксическая ошибка рядом с резервной копией» (при использовании резервного копирования)

1 Ответ

0 голосов
/ 24 октября 2019

Не совсем то, что я хотел, но это работает.

Использование плагина SQLite Porter Cordova / Phonegap (https://www.npmjs.com/package/uk.co.workingedge.cordova.plugin.sqliteporter)

этот плагин позволяет экспортировать / импортировать базу данных в формате JSON или SQLТаким образом, хотя он не создает файл .db, как мне хотелось, он все же позволяет мне создавать текст для использования в качестве резервной копии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...