【问题标题】:Is it possible to download GAE datastore from appcfg.py?是否可以从 appcfg.py 下载 GAE 数据存储?
【发布时间】:2016-06-08 00:26:21
【问题描述】:

我正在尝试从项目中下载数据存储记录:

appcfg.py --application=id --url=http://id.appspot.com/_ah/remote_api download_data foobar --filename=foobar.bak

它以如下消息结束:

[INFO    ] Have 1 entities, 0 previously transferred
[INFO    ] 1 entities (3715 bytes) transferred in 3.8 seconds 

但是当我检查生成的 sqlite3 时,其中没有任何内容类似于数据存储实体中的数据。我错过了什么?

gcloud info

我知道备份到云存储的方法,但这对我来说似乎太麻烦了。也许有人写了一些简单的 JSON 导出器?

【问题讨论】:

  • 数据作为序列化协议缓冲区存储在sqlite中;你不能直接查询它,你必须通过你在本地运行的应用程序。
  • 但 download_data 似乎一次只下载一个“表”。如何获取所有“种类”的数据,以便我的应用可以在本地运行 dev_appserver.py
  • 我不确定你在问什么。您可以使用 appcfg.py 的 --kind 参数选择要下载的类型。
  • 但我想要各种。它似乎一次只做一个。

标签: python google-app-engine google-cloud-datastore


【解决方案1】:

我不确定为什么在“download_data”之后还有“foobar”。

这应该适用于下载所有类型:

appcfg.py --application=id --url=http://id.appspot.com/_ah/remote_api download_data --filename=foobar.bak

别忘了在本地使用它之前你必须将它上传到你的开发服务器:

appcfg.py upload_data --url http://localhost:8080/remote_api --file=foobar.bak --application=id

默认情况下你会得到一切。如果您想将其限制到特定的命名空间或种类,您可以添加:

--namespace="your_namespace"

--kind="kind"

【讨论】:

  • 不太明白为什么要先上传再下载?假设我在 GAE 云上已经有一大堆客户数据,我需要在本地使用这些数据来开发新功能。
  • 你没有。您下载到本地计算机,但此下载不会将其“加载”到本地开发服务器中,它只是一个随机文件。有了这个,您就可以将它“上传”到本地运行的实例,这实际上只是让您的本地实例读取它,以便可以在本地使用它。同样,路径是 GAE Cloud --Download--> 您的 HDD 作为文件 --Upload--> 您的本地 devserver 实例
猜你喜欢
  • 1970-01-01
  • 2013-12-07
  • 1970-01-01
  • 1970-01-01
  • 2013-01-05
  • 2015-07-06
  • 2012-01-10
  • 2011-04-05
  • 1970-01-01
相关资源
最近更新 更多