【问题标题】:Downloading Google App Engine Database下载 Google App Engine 数据库
【发布时间】:2010-09-13 09:22:11
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    要启用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 在评论中的格式不正确。)

    【讨论】:

      【解决方案2】:

      我有一个简单的要求,即从基于 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 的形式给出,即 tilda appid,因为应用程序正在使用 HR 数据存储。对于主/从数据存储,普通的 appid 就可以了。

        bulkload.py 将提示输入应用程序的登录凭据。在身份验证时,它会将实体转储到指定的文件中。

      4. 使用以下命令恢复

        bulkloader.py --restore --application=appid --url=http://127.0.0.1:8888/remote_api --filename=xyz.dump

        对于本地凭据,请使用电子邮件管理员和空白密码。即使对于 HRD 本地数据存储,也可以使用普通 appid(s~appid 恢复数据,但无法在开发控制台 - 数据存储查看器中访问实体。我不知道为什么)

        转储可以恢复到同一个appid,甚至可以恢复到不同的appid

      【讨论】:

        【解决方案3】:

        是的,使用BulkLoader

        【讨论】:

        • 我需要更多示例,如何从谷歌应用引擎数据存储中下载数据
        • 我用这个:python2.5 appcfg.py download_data -A APP-ID --url http://APP-ID.appspot.com/remote_api --filename=datastore-$(date +%Y%m%d-%H%M).data
        • 在那个 bulkloader 链接中,他们也使用 python 进行了解释。但我使用的是 java,所以我无法遵循该示例。我想要一些关于如何在 webapplication 项目中使用 java 下载数据的明确解释
        • @user441392 请仔细阅读整个链接,因为它描述了在 Java 中使用 BulkLoader 所需的步骤。为了将来参考,请说明您使用的是 Java GAE。
        • 我已阅读并找到此提示:如果您有 Java 应用程序,则可以通过安装 Java 版本的 remote_api 处理程序来使用 Python bulkloader.py 工具,该处理程序包含在 Java 运行时环境中.处理程序 servlet 类是 com.google.apphosting.utils.remoteapi.RemoteApiServlet。我知道我需要将 java 远程 api 添加到我的服务器应用程序中,并使用我桌面上的 python sdk 工具来上传和下载数据。我只是对如何在我的 java 应用程序中设置远程 api 感到困惑。对不起,如果我是迟钝的。我正在尝试找到在我的应用程序中安装 java remote_api 的指南
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-16
        • 2011-06-17
        相关资源
        最近更新 更多