uni-app SQLite数据库调试的时候退出app重进 db文件就没了
uni-app SQLite数据库调试的时候退出app重进 db文件就没了
项目信息 | 详情 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC开发环境版本号 | win10 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 4.56 |
手机系统 | Android |
手机系统版本号 | Android 12 |
手机厂商 | 华为 |
手机机型 | nave8 |
页面类型 | vue |
vue版本 | vue3 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
操作步骤:
- 退出重进
预期结果:
- 数据库还在
实际结果:
- 数据库没了
bug描述:
- 真机调试的时候退出app 重新进来 创建的数据库就没了
更多关于uni-app SQLite数据库调试的时候退出app重进 db文件就没了的实战教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
确认保存db文件的路径是什么?
更多关于uni-app SQLite数据库调试的时候退出app重进 db文件就没了的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这个问题是由于调试模式下SQLite数据库存储在临时目录导致的。在uni-app的调试模式下,SQLite数据库默认会被创建在应用的临时目录中,当应用退出时这些临时文件会被清除。
解决方案:
-
正式打包后不会出现这个问题,因为正式包会使用持久化存储路径。
-
如果需要在调试模式下保留数据库,可以修改数据库路径到持久化目录:
// 使用plus.io获取应用持久化目录路径
const dbPath = plus.io.convertLocalFileSystemURL('_doc/') + 'mydb.db';
// 打开数据库时指定路径
const db = plus.sqlite.openDatabase({
name: dbPath,
path: dbPath
});
- 或者使用uni-app的本地存储API来获取持久化路径:
const dbPath = `${plus.io.PRIVATE_DOC}` + '/mydb.db';
const db = plus.sqlite.openDatabase({
name: 'mydb',
path: dbPath
});
- 确保在应用退出时正确关闭数据库连接:
onUnmounted(() => {
plus.sqlite.closeDatabase({
name: dbPath
});
});