App Engine数据存储区:我可以从完整备份中还原特定命名空间的实体吗?

时间:2017-06-21 04:11:26

标签: google-app-engine google-cloud-datastore backup restore datastore-admin

我使用Google Cloud Datastore Admin创建了所有命名空间的所有实体的备份。

我想问一下我是否可以仅在名称空间中恢复实体。

示例:我有3个名称空间

  • Namespace_1
  • Namespace_2
  • Namespace_3

所有名称空间都包含相同的实体类型,例如MyEntityKind

我想从我的完整备份

中仅恢复Namespace_3.MyEntityKind

我该怎么做?在Datastore Admin中,我只能在执行恢复时选择kind,但不能选择名称空间。

由于

1 个答案:

答案 0 :(得分:2)

概述

数据存储管理员备份正在逐步淘汰,因此使用新的managed exports功能,尽管适用相同的原则。

创建一个新项目,让我们称之为staging。将完整备份导入staging。从staging创建一个新的导出,仅用于您想要的命名空间或类型。将此新导出导入到原始项目中。

命令

新系统的完全导出是这样实现的:

gcloud datastore export gs://${BUCKET}

当这样导出时,没有直接的方法来导入选择部件,因此您需要切换项目,然后导入一个临时项目。导入命令很简单:

gcloud datastore import gs://${BUCKET}/[PATH]/[FILE].overall_export_metadata

[PATH]可以从export命令的结果中找到,也可以在控制台中浏览Cloud Stage存储桶。 [FILE]与[PATH]相同,但您可以在UI中确认。

现在,从staging project输出您想要的命名空间:

gcloud datastore export --namespaces="Namespace_3" gs://${BUCKET}

现在,您只能使用所需的命名空间进行导出,并可以将其导回到原始项目中。