我在Google App Engine for Python中部署了现有网站。现在我在我的系统中设置了本地开发服务器。但我不知道如何从实时服务器获取更新的DataBase。 Google的开发者控制台中没有“导出”选项。
并且,我不想从生产数据存储区读取每个请求的数据,我想在本地设置一次。谷歌手册说它将本地数据存储存储在sqlite文件中。
任何暗示都会受到赞赏。
答案 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将数据库调用隧道传送到生产数据库。