【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报错,进而导致数据库无法正常使用

相关推荐
哈__5 分钟前
时序数据库性能巅峰对决:金仓数据库在复杂场景下的技术突破与实战验证
数据库
WayserKON5 分钟前
pg 窗口函数
数据库·postgresql
!chen6 分钟前
Oracle回滚与撤销技术
数据库·oracle
总有刁民想爱朕ha7 分钟前
Windows Server 2019部署PostgreSQL 14教程
数据库·windows·postgresql
聆风吟º12 分钟前
时序数据战场巅峰对决:金仓数据库 VS InfluxDB深度解析
数据库·influxdb·kingbasees·金仓数据库
动亦定22 分钟前
微服务中如何保证数据一致性?
java·数据库·微服务·架构
瀚高PG实验室42 分钟前
timestampdiff (MYSQL)函数在Highgo DB中的写法
数据库·mysql·瀚高数据库
美人鱼战士爱学习1 小时前
RODI: Benchmarking Relational-to-Ontology Mapping Generation Quality
数据库
Austindatabases1 小时前
云数据库备份恢复验证,云数据库高端客户的需求说明
数据库
赵渝强老师1 小时前
【赵渝强老师】MongoDB的数据类型
数据库·mongodb·nosql