Я пытаюсь создать локальную резервную копию базы данных из моего приложения. Для этого я создал следующую функцию в 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) или «Синтаксическая ошибка рядом с резервной копией» (при использовании резервного копирования)