如何从本地开发服务器访问Production Datastore?

时间:2015-01-29 15:42:04

标签: python google-app-engine

我在Google App Engine for Python中部署了现有网站。现在我在我的系统中设置了本地开发服务器。但我不知道如何从实时服务器获取更新的DataBase。 Google的开发者控制台中没有“导出”选项。

并且,我不想从生产数据存储区读取每个请求的数据,我想在本地设置一次。谷歌手册说它将本地数据存储存储在sqlite文件中。

任何暗示都会受到赞赏。

2 个答案:

答案 0 :(得分:2)

首先,确保您的app.yaml启用"遥控器"内置的,有一个如:

的节
builtins:
- remote_api: on

app.yaml当然必须是部署到appspot.com(或其他)"生产" GAE app。

然后,它是/usr/local/google_appengine/bulkloader.py或您安装bulkloader组件的任何地方的工作。使用-h运行它以获取可以传递的众多选项的列表。

您可能需要在Google帐户页面上为此用户生成特定于应用程序的密码。然后,一般用法将是:

/usr/local/google_appengine/bulkloader.py --dump --url=http://your_app.appspot.com/_ah/remote_api --filename=allkinds.sq3

你可能还没有能够使用这种"各种各样的"查询 - 服务器仅为所有类型的查询生成所需的统计信息"定期",因此您可能会收到包含以下信息的错误消息:

[ERROR   ] Unable to download kind stats for all-kinds download.
[ERROR   ] Kind stats are generated periodically by the appserver
[ERROR   ] Kind stats are not available on dev_appserver.

如果是这样,那么你仍然可以一次得到一种东西"通过添加选项--kind=EntityKind并为每种实体重复运行bulkloader(使用单独的sqlite3结果文件)。

如果您已经转储(如果必须,可以一次性),生产数据存储区,您可以再次使用批量加载程序,这次使用--restore并寻址您的localhost dev_appserver例如,重建后者的数据存储区。

可以明确列出--kind标志中的种类(用逗号分隔它们并将它们全部放在括号中)但不幸的是我觉得我发现了阻止工作的错误 - 我会尝试将其修复但不要屏住呼吸。在任何情况下,这个功能都没有记录(我只是通过研究bulkloader.py的开源版本找到它)所以最好不要依赖它! - )

关于当时新的批量加载器的更多信息可以在Nick Johnson的http://blog.notdot.net/2010/04/Using-the-new-bulkloader的博客文章中找到(虽然它没有涵盖更新的功能,例如&#34中sqlite3格式的结果;零配置"上面概述的方法)。还有一个带有大量链接的演示,http://bulkloadersample.appspot.com/(也有点过时,唉)。

答案 1 :(得分:0)

查看remote API。这将通过HTTP将数据库调用隧道传送到生产数据库。