GCP数据存储区模拟器导入的引用已损坏

时间:2019-10-11 14:27:28

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

当尝试导入到数据存储模拟器时,所有数据均已正确导入,但是关键引用有误。

我要导入的过程是从here指令导出后的here中的过程。

我已经从数据存储区查看器中捕获了这种情况的屏幕截图,否则很难理解。

似乎键引用(蓝色箭头)包含正确的种类和ID,因为数据存储区查看器正在将其拉出(橙色箭头)并且它们是正确的,但是它引用的实体具有不同的主实体键(例如红色箭头,尽管显然是针对不同的实体),但格式都略有不同(它们具有相同的前缀和两个连字符)。

似乎在模拟器中和在实时数据存储区中,密钥编码是以一种微妙的不一致的方式完成的,但是我在任何地方都找不到关于此的任何文档。

运行代码并使用客户端库连接到仿真器会显示所有引用也都具有正确的ID(甚至不确定您是否可以使用Ruby客户端看到字符串键)。尝试使用客户端通过设置相同的ID并保存以希望重新生成密钥来重置引用也没有用。

enter image description here

2 个答案:

答案 0 :(得分:1)

我认为您的应用程序运行正常,但您只关心编码。如果是这样,那就不用担心了。

  

似乎在模拟器中和在实时数据存储区中,密钥编码是以一种微妙的不一致的方式完成的,但是我在任何地方都找不到关于此的任何文档。

密钥的编码方式在某些时候已经改变。我认为SDK随附的数据存储查看器仍然使用旧样式。该API甚至进行了增强,以支持旧样式的解码,您可以参考

https://github.com/googleapis/google-cloud-python/issues/3293

到以获取更多详细信息。我发现新的编码比旧的编码更紧凑。我相信新的编码不会在编码中包含app / project id,这是有道理的,因为该信息属于整个数据库,而不是每个特定的键。

答案 1 :(得分:0)

关于您遇到的此错误,存在一个未解决的问题。您可以关注此issue here的进度。

似乎是一个错误,需要由Google工程师修复。