我在Google App Engine数据存储区中创建了表格(实体)后创建了Web应用程序并将其部署到Google App Engine中。我怀疑是否可以下载实体/数据库?
答案 0 :(得分:5)
要启用remote_api
,请将其添加到web.xml
:
<servlet>
<servlet-name>remote-api</servlet-name>
<servlet-class>com.google.apphosting.utils.remoteapi.RemoteApiServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>remote-api</servlet-name>
<url-pattern>/remote_api</url-pattern>
</servlet-mapping>
此主题中的详细信息:http://groups.google.com/group/google-appengine/browse_thread/thread/1bb013cbdd30750b
然后,正如shay所提到的,使用bulk loader。
(仅作为答案而不是评论添加,因为XML不会在评论中很好地格式化。)
答案 1 :(得分:3)
我有一个简单的要求,即从基于GAE Java的应用程序转储实体,并将它们还原到本地数据存储区。我最终可以通过以下步骤来实现
将RemoteApiServlet添加到web.xml并部署应用程序
<servlet> <servlet-name>RemoteApi</servlet-name> <servlet-class>com.google.apphosting.utils.remoteapi.RemoteApiServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>RemoteApi</servlet-name> <url-pattern>/remote_api</url-pattern> </servlet-mapping>
下载适用于Python的Google App Engine SDK并解压缩
使用bulkloader.py从GAE转储数据存储区
bulkloader.py --dump --application = s~appid --url = http://appid.appspot.com/remote_api --filename = xyz.dump
- 应用程序以s~appid给出,即s tilda appid,因为app正在使用HR数据存储区。对于Master / Slave数据流,普通appid会这样做。
bulkload.py将提示输入app的登录凭据。在身份验证时,它会将实体转储到指定的文件。
要恢复使用以下命令
bulkloader.py --restore --application = appid --url = http://127.0.0.1:8888 / remote_api --filename = xyz.dump
对于本地凭据,请使用电子邮件管理员和空白密码。即使对于HRD本地数据存储区,也使用普通的appid(s~appid恢复数据,但在开发控制台中无法访问实体 - 数据存储区查看器。我不知道为什么)
转储可以恢复到同一个appid甚至是不同的appid
答案 2 :(得分:1)
是的,使用BulkLoader