0

我有一个颤振应用程序,它用 objectbox 存储数据,但我需要更改一个具有

// old:
int year;
// new:
double year;

ObjectBox 不支持将现有属性数据迁移到新类型。您必须自己解决这个问题,例如保留旧属性并添加一些迁移逻辑。

在 objectbox 页面上,他们说可以通过迁移逻辑来实现。数据已经用 int 存储了,我需要将此数据迁移到 double 但我没有成功。有人可以帮我举个例子。谢谢

4

1 回答 1

0

因此,您可能已经知道,在保持旧数据完整的同时进行类型迁移目前是不可能的(据我所知)。所以你必须解决这个问题,我能想到的一种复杂的方法是用你的新类型创建一个字段,然后在应用程序启动时,遍历所有当前保存并使用 year.toDouble() 并移动任何当前年份中的值到 yearDouble。(对不起电话所以没有真正的代码)

然后当您需要再次提取该值时,检查原始年份值,如果它为空,则从新 yearDouble 中读取年份值

您也可以一起忽略原始迭代,并在使用该值时进行检查。所以修改你当前的方法,检查yearDouble是否为空,然后读取原来的year.toDouble(),然后将值同时添加到yearDouble属性中

于 2022-02-11T01:34:24.517 回答