【问题标题】:Porting a pre-populated sqlite database in Ionic在 Ionic 中移植预填充的 sqlite 数据库
【发布时间】:2022-07-07 01:55:44
【问题描述】:

应用使用的技术: IonicCapacitorAngularSQLite

要求是在应用程序中使用预填充的 SQLite 数据库。我在互联网上通过各种博客和论坛找到的方法提到了运行SQL script 来初始化数据库作为预填充步骤,但这会带来不必要的开销时间来开始查询数据库。就像用户每次都需要等待一分钟左右才能完全运行 SQL 脚本,即使应用程序存在。

这个问题成为一个障碍,因为当需要移植大型数据库时,编写 SQL 脚本不再可行,因为开销时间急剧增加。另外,更大的问题是,在Android studioJava 开始抛出Heap Memory exceeded error

我尝试的一个解决方案是将数据库直接移植为应用程序的资产,以便它可以与应用程序一起提供。但是,当将数据库文件放在src/assets/ 中时,应用程序的每个构建都会生成www/ 以创建一个可以包装在本机视图中的网络应用程序。构建器和编译器删除了www/文件夹中之前构建的所有内容,我们必须明白,电容器在www/而不是www/assets/中查找数据库文件,但我们不能放置数据库文件www/,因为它在每次构建时都会被删除。

链接到使用sqlite extension的现有问题

【问题讨论】:

  • 您是否考虑过使用电容器 sqlite 插件?此外,您应该只在首次安装应用程序时才填充数据库

标签: android angular sqlite ionic-framework capacitor


【解决方案1】:

也许我的经验可以帮助你

发展规则

1 /assets 中的 bundle (Android APK) 的 database1 必须是静态的,不能用于更新。因为在您的版本上重新安装应用程序时可以更改它们

2 您必须以编程方式在设备上创建新的数据库2-本地,以存储用户的数据。您可以使用数据库 1 中的数据填充此数据库 2

3 当您将安装新版本的应用程序时:database1 可能会更改,但 database2 会变为常量

【讨论】:

    猜你喜欢
    • 2016-10-24
    • 2015-11-24
    • 2020-03-19
    • 2018-02-01
    • 2017-07-15
    • 2019-02-09
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多