我使用 Google Cloud Datastore Admin 创建了所有命名空间的所有实体的备份。
我想问我是否可以只在命名空间上恢复实体。
示例:我有 3 个命名空间
- 命名空间_1
- 命名空间_2
- 命名空间_3
所有命名空间都包含相同的实体类型,比如说 MyEntityKind
我只想从我的完整备份中恢复 Namespace_3.MyEntityKind
我怎样才能做到这一点?在 Datastore Admin 中,我在进行恢复时只能选择种类而不是命名空间。
谢谢
我使用 Google Cloud Datastore Admin 创建了所有命名空间的所有实体的备份。
我想问我是否可以只在命名空间上恢复实体。
示例:我有 3 个命名空间
所有命名空间都包含相同的实体类型,比如说 MyEntityKind
我只想从我的完整备份中恢复 Namespace_3.MyEntityKind
我怎样才能做到这一点?在 Datastore Admin 中,我在进行恢复时只能选择种类而不是命名空间。
谢谢
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}
您现在有了一个只包含您想要的命名空间的导出,并且可以将它导入回原始项目。