在App Engine中迁移key.id列表

问题描述:

我正在将应用程序迁移到高度复制数据存储。我的理解是这样的,我只需将数据复制到启用HRDS的新应用程序,即使用Datastore Admin在App Engine中迁移key.id列表

但是,我的应用程序有一些实体通过其key.id链接到其他实体。

posts = db.ListProperty(int) 

当我迁移应用程序时,对象的ID可能会改变,不是吗?我如何确保这些列表仍然正确链接?

+0

请勿使用复制工具,请使用您可以在“应用程序设置”页面中找到的专用迁移工具。 – 2012-03-31 11:44:21

使用数据存储区迁移工具(如Daniel所示),现有实体ID将被保留。

虽然你确实应该使用键列表而不是ID。

+0

但是,在这种情况下,如果我使用了密钥的“StringList”这些键会改变,因为AppID是键的一部分,对吗?或者迁移工具是否也考虑到了这一点?为什么使用键更好?它是考虑到多个应用程序/命名空间? – noio 2012-03-31 12:18:09

+0

@Noio如果您使用字符串化的键,则不会更改appid,因为迁移过程无法知道它们是键。你应该使用一个Key对象列表(例如'db.ListProperty(db.Key)'。 – 2012-03-31 17:22:20

+0

哦,对了!当然,我确实想知道为什么我没有这样做。我将迁移到HR,然后切换到'db.Key'列表。谢谢。 – noio 2012-04-01 13:09:39