在Google Datastore中,如何将引用其他实体的实体从一个项目转移到另一个项目?

时间:2016-09-08 09:23:48

标签: google-app-engine google-cloud-platform google-cloud-datastore

实体密钥(例如urlsafe密钥)包括项目标识符。即,这些键的构建类似于 projectID + kind + entityId 。这些密钥可以存储在一个实体的字段中,作为对另一个实体的引用。

因此,当您在Google Cloud项目之间复制部分或全部数据库时 - 例如,作为备份或创建测试环境 - 实体之间的所有引用都会被破坏。

我们如何安全地在项目之间复制实体?

1 个答案:

答案 0 :(得分:3)

如果您的实体有一个密钥(假设是Python),请执行以下操作:

    some_key = ndb.KeyProperty()

然后当您转移到新项目时,此密钥不会中断。此密钥不包括项目ID。

如果您在实体中存储urlsafe密钥,则在将数据传输到新项目时需要更新所有密钥,因为urlsafe密钥确实包含项目ID。

除非你有多个项目互相交流,否则你可能不应该存储urlsafe密钥。