Google App Engine:快照数据库?

时间:2011-06-02 18:24:21

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

嘿伙计们,我想为我们的登台服务器编写一些代码,通过遍历数据库中的每个模型并以可恢复的方式序列化/反序列化来“快照”GAE数据库。

这不一定是线程安全的,它纯粹用于演示之类的东西,我们喜欢它在高复制数据库上运行。

在数据库中会有非常的小数据,足以运行一个演示,所以它可能是一个非常脏的黑客。

2 个答案:

答案 0 :(得分:1)

您不能只使用标准bulkloader的任何理由?你可以告诉它下载所有类型的实体,所以你不必先验地知道它们的名字:

 appcfg.py download_data --application=<app-id> --url=http://<appname>.appspot.com/[remote_api_path] --filename=<data-filename>

要上传,您可以反过来:

appcfg.py upload_data --application=<app-id> --kind=<kind> --filename=<data-filename> <app-directory>

我不完全确定它是否会及时给你一个快照(例如,如果它阻止所有新的写入,直到它完成)我会冒险说'不',但如果你真的需要一个真正的快照时间你可以在你的应用程序中禁用写入,抓取数据,然后重新启用它(虽然如何做到这一点可能有点kloogy。)

答案 1 :(得分:0)

这听起来像是“为我编写代码”问题......

为了给你一个简短的答案,随意在你的模型中运行for循环(因为你说没有存储很多数据)并保存所有内容,例如,json字符串或你可以很容易的东西还原