我的问题非常明显:
TaskDescription
的类,它对应于App Engine数据存储区中的一种(表)。
然后我将它重命名为TaskContent
并且所有存储的数据现在似乎都丢失了(因为类名称是所谓的kind
名称是存储数据路径的一部分)。 在这个世界上没有什么是完美的,我怀疑从头开始创建所有绝对正确的实体是可能的,并且在此之后永远不会改变它们。
那么,如何处理这个问题呢?
答案 0 :(得分:2)
两种方式:
保持实体不变并更改映射:在客观化中,您可以设置entity to class name mapping:例如: @Entity(名称= “实体名称”)。
更改数据存储区中的实体:由于数据存储区是无模式的,因此无法使用简单的命令完成此操作。对于实体名称更改,您需要创建新实体,复制所有属性并删除旧实体。人们通常使用MapReduce jobs to perform datastore maintenance。这是MapReduce for java。
对于字段名称更改,objectify具有显式support for migrating schemas(没有架构,但它们仍然以这种方式调用)。