在Ionic中移植预填充的sqlite数据库

vwkv1x7d  于 2022-12-09  发布在  Ionic
关注(0)|答案(1)|浏览(117)

应用程序使用的技术:IonicCapacitorAngularSQLite

要求是在应用程序中使用预填充的SQLite数据库。我在互联网上的各种博客和论坛上找到的方法提到运行SQL script来初始化数据库作为预填充步骤,但这会带来不必要的开销时间来开始查询数据库。因为用户每次都需要等待一分钟左右的时间来完全运行SQL脚本,即使该应用程序存在。
这个问题成为了一个障碍,因为当需要移植一个大型数据库时,由于开销时间急剧增加,编写SQL脚本不再可行。此外,一个更大的问题是,在Android studio中,Java开始抛出Heap Memory exceeded error
我尝试过的一个解决方案是将数据库直接作为应用程序的资产进行移植,这样它就可以随应用程序沿着发布。但是,当将数据库文件放在src/assets/中时,应用程序的每个构建都会生成www/,以创建可以 Package 在本机视图中的Web应用程序。构建器和编译器会删除www/文件夹中上一个构建的所有内容,我们必须理解,capacitor在www/中查找数据库文件,而不是在www/assets/中查找,但我们不能将数据库文件放在www/中,因为它在每次构建时都会被删除。
链接至使用sqlite extension时的现有问题

px9o7tmv

px9o7tmv1#

也许我经验能帮你
发展规则
来自/assets的捆绑包(Android APK)的1 database 1必须是静态的,不能用于更新。因为它们可以在应用程序重新安装在您的版本上时更改
2您必须创建新的 db2 -本地的、在设备上的、编程的-以存储用户的数据。您可以用数据库1中的数据填充此 db2
3当您将安装新版本的应用程序时:database 1可以更改,但database 2变为常量
在浏览器中也存在同样情况:以编程方式创建的数据库不会在会话之间消失。
我检查-它在我的应用程序中工作...

相关问题