【问题标题】:GAE data upload (seed and backup/restore)GAE 数据上传(种子和备份/恢复)
【发布时间】:2013-03-22 15:30:15
【问题描述】:
由于 GAE 平台的频繁变化,我阅读了不同的文章,有点困惑什么是 2013 年导出/上传数据的最佳方式。根据doc,批量上传工具并不真正适用于 High Replication Store .
本文档适用于使用主/从数据存储的应用。如果
您的应用程序使用 High Replication 数据存储,可以复制
来自应用程序的数据,但 Google 目前不支持此用途
案例。
请评论以下具体场景。我打算使用 golang 运行时,但希望这不会影响备份/恢复。
如何使用初始(种子/测试)数据加载数据存储。比如说,我可以以管理员身份登录,然后需要将数据从 csv/json 文件加载到数据存储区中。
Datastore Admin:
我认为这个实验性功能是为了备份/恢复。它适用于 GO 运行时吗?存储备份文件的格式。我可以用 json 做吗?
谢谢。
【问题讨论】:
标签:
google-app-engine
google-cloud-datastore
database-backups
【解决方案1】:
我在 AppEngine 上运行了一些应用程序,根据我的经验,最初使用现有数据填充数据库的最简单方法是将 .json 文件与您的应用程序文件一起包含,然后使用:
with open( 'yourdata.json', 'r') as file :
data = json.loads( file.read() )
获取您的数据,然后重新创建必要的数据库实体。您可以在下次上传应用程序时删除 .json 文件,因为不再需要这些文件。
关于备份,有 Datastore Admin,它允许您创建备份并将它们存储到 BlobStore 或其他一些云空间,但我发现它们真的不方便再次下载和重新上传 - 有几十个不同的文件,很容易忘记或错过。
因此,我建议您编写自己的备份例程,同时将您的数据保存到 BlobStore,但保存在一个文件中,这样您就可以轻松下载并重新上传,而不必担心丢失/忘记文件。
备份文件的创建非常简单——打开BlobStore 文件进行写入,然后迭代您的模型并将它们转换为.json 并写入(可选地使用(g)zip 即时压缩)到@ 987654325@文件。