使用 SugarORM 为 android 数据库加载初始数据

Load initial data for android database using SugarORM

这是我的第一个问题,所以我希望到目前为止我没有搞砸...

所以,问题是我正在为数据库使用 SugarORM 开发一个 android 应用程序。我设法成功地创建了表,我什至可以使用 SugarORM 保存和搜索对象,但我希望应用程序将一组数据存储在数据库中,以供用户从一开始就使用。我阅读了有关 SugarORM 的版本控制的信息,并认为也许我可以创建一个 1.sql 脚本来加载初始数据,尝试过但没有成功。然后我想也许我应该尝试为第二个版本而不是第一个版本做这件事,所以我将 1.sql 文件中的内容移动到 2.sql,更改了 [=] 中的版本号25=]到

<meta-data android:name="VERSION" android:value="2" />

什么也没发生...

SugarORM 有没有办法在我创建表后立即自动加载初始数据到我的表?或者我是否需要以编程方式创建一个方法,在我的主要 activity?

的 onCreate() 方法上为我执行此操作

我相信版本对应于您的数据库结构。而且我不认为这是正确的方法,即使你可以在那里做到。如果您的用户在设置中清除了应用数据怎么办?

我认为您应该使用 Preferences 来存储一个简单的布尔值,比如 isSeeded 并且在您的应用程序启动时检索该值。如果 isSeeded returns false,用准备好的数据填充数据库并将值保存回 true。

目前似乎无法使用迁移脚本执行此操作。但是已经有一个问题:https://github.com/satyan/sugar/issues/87。所以也许我们将来会有它。

顺便说一下,在 DBFlow 中你可以这样做——至少他们在他们的文档页面上宣传它:https://github.com/Raizlabs/DBFlow/blob/master/usage/Migrations.md