关于ObjectBox数据模型重命名的问题

问题描述

说我想将属性“ user”重命名为“ customer”。我知道可以在新的属性名称添加“ user”的@Uid。喜欢:

@Uid(123985252953064306)
String customer;

因此,我认为在我的应用的下一次构建和运行期间,数据库中的“用户”将重命名为“客户”。我的第一个问题是:然后可以从我的代码删除@Uid(123985252953064306)进行进一步构建吗?如果应用程序仅由我自己使用,我想答案是肯定的。因此,为了保持与应用程序最终用户的兼容性,我仍然需要在代码中保留@Uid批注。正确吗?

我的下一个问题是:如果以后我想将“客户”重命名为“客户”怎么办?我应该在新属性添加其他@Uid吗?喜欢:

@Uid(123985252953064306)
@Uid(124568645726267383)
String client;

解决方法

Data Model Updates中的文档涵盖了您要提出的问题,Meta Model,IDs,and UIDs中的文档也提供了更多背景知识。

简而言之,一旦将@Uid放在属性(或实体)上,就可以随心所欲地对其进行重命名。 ObjectBox使用UID来标识该属性,并知道它之前曾存在过。因此,您需要将其保留在属性上。

所以

@Uid(123985252953064306)
String customer;

你可以去

@Uid(123985252953064306)
String someFancyName;

然后返回

@Uid(123985252953064306)
String customer;

在数据库中为属性保留相同的数据。