变化的实体类与开发应用程序引擎问题

问题描述:

我的问题是非常明显的:变化的实体类与开发应用程序引擎问题

  1. 我有一个名为TaskDescription类这相当于在App Engine数据存储的一种(表)。 然后我将它重命名为TaskContent,并且所有存储的数据现在似乎都已丢失(因为类名是所谓的kind名称是存储数据路径的一部分)。
  2. 我意识到,每次我重命名任何实体类中的单个字段时,都会发生几乎相同的问题。

在这个世界上没有什么是完美的,我怀疑它有可能从头开始创建所有绝对正确的实体,并且在此之后从不改变它们。

那么,如何处理这个问题呢?

+0

你在使用什么API? JDO? JPA?低级别的? – 2011-02-28 15:56:10

+0

@Peter Knego:objectify – Roman 2011-02-28 16:54:41

两种方式:

  1. 离开实体,因为它们并更改映射:在客观化,你可以设置entity to class name mapping:例如@Entity(名称= “实体名称”)。

  2. 更改数据存储中的实体:由于数据存储是无模式的,因此无法通过简单的命令完成此操作。对于实体名称更改,您需要创建一个新实体,复制所有属性并删除旧实体。人们通常使用MapReduce jobs to perform datastore maintenance。这里是MapReduce for java

对于字段名称的变化,objectify有明确的support for migrating schemas(没有模式,但他们仍然这样调用它)。

+1

@谢谢,非常有用的信息。 – Roman 2011-02-28 17:43:18