3

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

我想问我是否可以只在命名空间上恢复实体。

示例:我有 3 个命名空间

  • 命名空间_1
  • 命名空间_2
  • 命名空间_3

所有命名空间都包含相同的实体类型,比如说 MyEntityKind

我只想从我的完整备份中恢复 Namespace_3.MyEntityKind

我怎样才能做到这一点?在 Datastore Admin 中,我在进行恢复时只能选择种类而不是命名空间。

谢谢

4

1 回答 1

2

概述

Datastore Admin 备份正在逐步淘汰,因此使用新的托管导出功能,尽管适用相同的原则。

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

命令

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

gcloud datastore export gs://${BUCKET}

像这样导出时,没有直接的方法来导入选定的部分,所以你需要切换项目,然后将它导入一个临时项目。导入命令很简单:

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

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

现在,从以下位置导出您想要的命名空间staging project

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

您现在有了一个只包含您想要的命名空间的导出,并且可以将它导入回原始项目。

于 2018-03-18T04:05:59.793 回答