【sqlcipher】pc端sqflite使用过程中遇到的问题

在flutter中使用sqlcipher时

Mac上如果通过flutter带的文件管理api(即File的delete()方法)删除数据库文件,再创建同名的数据文件的话,必现readonly问题,

这里需要注意的一点是

DatabaseFactory 在Mac上直接使用全局的databaseFactory即可

而在Windows上需要使用sqflite_ffi.createDatabaseFactoryFfi(ffiInit:(){...})返回的结果

但是如果通过sqlite库的删除数据库的api删除数据库文件的话,再创建同名的数据文件的话,就不会出现readonly问题

而且这里还有一个问题:如果上次数据库没有正常colse的话,再重新open数据库连接会导致database is locked报错,进而导致数据库无法正常使用

相关推荐
王道长服务器 | 亚马逊云40 分钟前
帝国CMS + AWS:老牌内容系统的新生之路
服务器·网络·数据库·云计算·aws
李慕婉学姐1 小时前
Springboot的民宿管理系统的设计与实现29rhm9uh(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
LB21122 小时前
Redis黑马点评 Feed流
数据库·redis·缓存
喝杯牛奶丶3 小时前
MySQL隔离级别:大厂为何偏爱RC?
java·数据库·mysql·面试
一 乐4 小时前
二手车销售|汽车销售|基于SprinBoot+vue的二手车交易系统(源码+数据库+文档)
java·前端·数据库·vue.js·后端·汽车
Databend4 小时前
BendSQL v0.30.3 Web UI 功能介绍
数据库
gAlAxy...4 小时前
Spring 从 0 → 1 保姆级笔记:IOC、DI、多配置、Bean 生命周期一次讲透
数据库·sqlserver
苦学编程的谢4 小时前
Redis_5_单线程模型
数据库·redis·缓存
xuejianxinokok5 小时前
可能被忽略的 pgvector 各种坑
数据库·后端
拾忆,想起5 小时前
TCP粘包拆包全解析:数据流中的“藕断丝连”与“一刀两断”
java·网络·数据库·网络协议·tcp/ip·哈希算法