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

相关推荐
正在走向自律35 分钟前
X2Doris是SelectDB可视化数据迁移工具,安装与部署&使用手册,轻松进行大数据迁移
数据库·数据迁移·selectdb·x2doris·数据库迁移工具
tuokuac39 分钟前
SQL中的LEFT JOIN
数据库·sql
tuokuac43 分钟前
SQL中的GROUP BY用法
数据库·sql
爱吃小土豆豆豆豆1 小时前
登录校验一
java·大数据·数据库
Albert Tan2 小时前
Oracle EBS 缺少adcfgclone.pl文件
数据库·oracle
摸鱼仙人~5 小时前
Redis 数据结构全景解析
数据结构·数据库·redis
t198751287 小时前
解决MySQL删除/var/lib/mysql下的所有文件后无法启动的问题
数据库·mysql·adb
大佐不会说日语~10 小时前
Redis高频问题全解析
java·数据库·redis
会飞的灰大狼10 小时前
初识数据库
数据库