0

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

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

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

什么也没发生……

SugarORM 有没有办法在我创建它们后立即将初始数据自动加载到我的表中?或者我是否需要在我的主要活动的 onCreate() 方法上以编程方式创建一个为我执行此操作的方法?

4

2 回答 2

0

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

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

于 2015-04-10T19:09:05.833 回答
0

现在似乎没有办法用迁移脚本来做到这一点。但是这已经存在一个问题:https ://github.com/satyan/sugar/issues/87 。所以也许我们将来会拥有它。

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

于 2016-01-22T14:29:20.953 回答