Я создал базу данных в своем ионном приложении и могу вставлять и подсчитывать записи из нее. Мне нужно иметь возможность видеть саму базу данных, чтобы я мог получить доступ к данным внутри нее. Где это в моем ионном приложении внутри устройства Android? Пожалуйста, посмотрите код ниже, чтобы увидеть, как я создал и сохранил базу данных.
generateDatabase() {
var createTableScript = 'CREATE TABLE IF NOT EXISTS lcs' +
'(rowid INTEGER PRIMARY KEY, entry_plaza TEXT, exit_plaza TEXT, vehicle_class TEXT, user_badge TEXT, scan_time TEXT, toll_fee TEXT, scanned_code TEXT)';
this.sqlite.create({
name: 'lcs.db',
location: 'default'
}).then((db: SQLiteObject) => {
db.executeSql(createTableScript, {})
.then(() => {
this.presentAlert('Database created', '');
}).catch(e => {
this.presentAlert('Error in executing database script', e);
})
}).catch(e => {
this.presentAlert('Error in the create method', e);
})
}
Невозможно увидеть базу данных SQLite. Вам нужно написать код для извлечения базы данных SQLite из вашего приложения, а затем необходимо просмотреть его с помощью Браузер БД для SQLite
Чтобы извлечь базу данных из вашего приложения, посмотрите на приведенный ниже код:
window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory, function (fileSystem) {
$log.log('resolveLocalFileSystemURL - externalRootDirectory success: ', fileSystem);
//var mainDir = 'Backup';
var mainDir = 'MyAppDB/' + 'Backup' + '';
$log.log('Main dir', mainDir);
fileSystem.getDirectory(mainDir, {create: true, exclusive: false}, function (dir) {
$log.log('getDirectory success: ', dir);
});
});
window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory, function (fileSystem) {
$log.log('resolveLocalFileSystemURL - externalRootDirectory success: ', fileSystem);
var mainDir = 'MyAppDB/' + 'Backup' + '';
$log.log('Main dir', mainDir);
fileSystem.getDirectory(mainDir, {create: true, exclusive: false}, function (dir) {
$log.log('getDirectory success: ', dir);
var URI_DB = cordova.file.applicationStorageDirectory + 'databases/';
var ROOT_DIR = 'file://mnt/sdcard/';
var PARENT_DIR = ROOT_DIR + mainDir + '/';
var NAME_DB = 'DB.db';
var NEW_NAME_BACKUP = today.toString() + '_' + 'MYApp.db';
$log.log('parent directory', PARENT_DIR);
$log.log('backup name', NEW_NAME_BACKUP);
window.resolveLocalFileSystemURL(URI_DB + NAME_DB, function (fs) {
window.resolveLocalFileSystemURL(PARENT_DIR, function (directoryEntry) {
fs.copyTo(directoryEntry, NEW_NAME_BACKUP, function () {
$log.log('The database backup was successful.');
localforage.setItem('dbbackup', today);
q.resolve('success');
});
}, failFiles);
});
});
});
return q.promise;
Случай отказа:
function failFiles (error) {
if (error.code === FileError.NOT_FOUND_ERR) {
alert('Message : NOT_FOUND_ERR');
} else if (error.code === FileError.SECURITY_ERR) {
alert('Message : SECURITY_ERR');
} else if (error.code === FileError.ABORT_ERR) {
alert('Message : ABORT_ERR');
} else if (error.code === FileError.NOT_READABLE_ERR) {
alert('Message : NOT_READABLE_ERR');
} else if (error.code === FileError.ENCODING_ERR) {
alert('Message : ENCODING_ERR');
} else if (error.code === FileError.NO_MODIFICATION_ALLOWED_ERR) {
alert('Message : NO_MODIFICATION_ALLOWED_ERR');
} else if (error.code === FileError.INVALID_STATE_ERR) {
alert('Message : INVALID_STATE_ERR');
} else if (error.code === FileError.SYNTAX_ERR) {
alert('Message : SYNTAX_ERR');
} else if (error.code === FileError.INVALID_MODIFICATION_ERR) {
alert('Message : INVALID_MODIFICATION_ERR');
} else if (error.code === FileError.QUOTA_EXCEEDED_ERR) {
alert('Message : QUOTA_EXCEEDED_ERR');
} else if (error.code === FileError.PATH_EXISTS_ERR) {
alert('Message : PATH_EXISTS_ERR');
}
Вам также необходимо установить файловый плагин.