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


路径放到_doc/xxxx.db下试试

这个问题是由于调试模式下SQLite数据库存储在临时目录导致的。在uni-app的调试模式下,SQLite数据库默认会被创建在应用的临时目录中,当应用退出时这些临时文件会被清除。

解决方案:

  1. 正式打包后不会出现这个问题,因为正式包会使用持久化存储路径。

  2. 如果需要在调试模式下保留数据库,可以修改数据库路径到持久化目录:

// 使用plus.io获取应用持久化目录路径
const dbPath = plus.io.convertLocalFileSystemURL('_doc/') + 'mydb.db';

// 打开数据库时指定路径
const db = plus.sqlite.openDatabase({
    name: dbPath,
    path: dbPath
});
  1. 或者使用uni-app的本地存储API来获取持久化路径:
const dbPath = `${plus.io.PRIVATE_DOC}` + '/mydb.db';
const db = plus.sqlite.openDatabase({
    name: 'mydb',
    path: dbPath
});
  1. 确保在应用退出时正确关闭数据库连接:
onUnmounted(() => {
    plus.sqlite.closeDatabase({
        name: dbPath
    });
});
回到顶部