【发布时间】:2022-07-07 01:55:44
【问题描述】:
应用使用的技术: Ionic、Capacitor、Angular 和 SQLite
要求是在应用程序中使用预填充的 SQLite 数据库。我在互联网上通过各种博客和论坛找到的方法提到了运行SQL script 来初始化数据库作为预填充步骤,但这会带来不必要的开销时间来开始查询数据库。就像用户每次都需要等待一分钟左右才能完全运行 SQL 脚本,即使应用程序存在。
这个问题成为一个障碍,因为当需要移植大型数据库时,编写 SQL 脚本不再可行,因为开销时间急剧增加。另外,更大的问题是,在Android studio,Java 开始抛出Heap Memory exceeded error。
我尝试的一个解决方案是将数据库直接移植为应用程序的资产,以便它可以与应用程序一起提供。但是,当将数据库文件放在src/assets/ 中时,应用程序的每个构建都会生成www/ 以创建一个可以包装在本机视图中的网络应用程序。构建器和编译器删除了www/文件夹中之前构建的所有内容,我们必须明白,电容器在www/而不是www/assets/中查找数据库文件,但我们不能放置数据库文件www/,因为它在每次构建时都会被删除。
链接到使用sqlite extension的现有问题
【问题讨论】:
-
您是否考虑过使用电容器 sqlite 插件?此外,您应该只在首次安装应用程序时才填充数据库
标签: android angular sqlite ionic-framework capacitor