我使用Google Cloud Datastore Admin创建了所有命名空间的所有实体的备份。
我想问一下我是否可以仅在名称空间中恢复实体。
示例:我有3个名称空间
所有名称空间都包含相同的实体类型,例如MyEntityKind
我想从我的完整备份
中仅恢复Namespace_3.MyEntityKind我该怎么做?在Datastore Admin中,我只能在执行恢复时选择kind,但不能选择名称空间。
由于
答案 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}
现在,您只能使用所需的命名空间进行导出,并可以将其导回到原始项目中。