【发布时间】:2018-06-22 12:08:13
【问题描述】:
正如标题中的问题所说。
我的数据库文件可能非常大,所以我不想不必要地复制它,我当然也不想在原地构建它。
如果db文件是flutter资产,sqlite有办法直接访问吗?
我看到有人建议我应该将资产的原始数据复制到一个文件中,然后再访问它,但这是对存储的浪费。或者我可以删除资产吗?
有没有一种简单的方法将数据库部署为资产以外的东西,即作为原始文件?
【问题讨论】:
-
我认为将您的资产复制到文件存储并使用它是您最好/唯一的选择。
-
仍在研究颤振,但已经解决了 iOS 和 Android 的这个问题,也许这很有用:iOS 包允许以只读模式打开并直接使用包含的 SQLite 数据库。 Android 包需要先复制,因为 db 文件是从压缩包中流式传输的。所以这取决于 Flutter 如何映射到原生包格式。您也许可以对我的本机应用程序执行我所做的操作,并在 iOS 上以只读方式使用它,并在对任何预先存在的数据库进行版本检查后复制到 Android 上(请参阅github.com/jgilfelt/android-sqlite-asset-helper)。请注意,SQLite ATTACH 在这两种情况下都适用 - 方便!