下载Google App Engine数据库

时间:2010-09-13 09:22:12

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

我在Google App Engine数据存储区中创建了表格(实体)后创建了Web应用程序并将其部署到Google App Engine中。我怀疑是否可以下载实体/数据库?

3 个答案:

答案 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的应用程序转储实体,并将它们还原到本地数据存储区。我最终可以通过以下步骤来实现

  1. 将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>
    
  2. 下载适用于Python的Google App Engine SDK并解压缩

  3. 使用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的登录凭据。在身份验证时,它会将实体转储到指定的文件。

  4. 要恢复使用以下命令

      

    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