2010-09-13 12 views

Répondre

1

Oui, en utilisant le BulkLoader

+0

J'ai besoin d'autres exemples, comment télécharger des données à partir du moteur Google App datastore – user441392

+0

j'utilise ceci: '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' – sahid

+0

Dans ce bulkloaderlink, ils expliquent aussi comment utiliser python.Mais j'utilise Java pour que je ne peux pas suivre cet exemple.Je veux une explication claire sur la façon dont les données de téléchargement en utilisant Java dans le projet webapplication – user441392

5

pour permettre remote_api, ajoutez à votre 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> 

détails sur ce sujet: http://groups.google.com/group/google-appengine/browse_thread/thread/1bb013cbdd30750b

puis, comme mentionné shay, utilisez le bulk loader.

(ajouté en réponse au lieu d'un commentaire seulement parce que le XML ne serait pas bien dans le format un commentaire.)

3

j'avais simple obligation de vider les entités de GAE Java App et les restaurer à datastore locale . Je pouvais enfin le faire avec les étapes suivantes

  1. Ajouter RemoteApiServlet à Web.xml et déployer l'application

    <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. Télécharger Google App Engine SDK pour Python et décompressez

  3. Utilisation de bulkloader.py pour vider la banque de données à partir de GAE

    bulkloader.py --dump --application = s ~ appid --url = http: //appid.appspot.com/remote_api --filename = xyz.dump

    --application est donné comme s ~ appid c'est-à-dire s tilda appid que l'application utilisait le datastore HR. Pour la base de données Master/Slave, l'appid simple fera l'affaire. Bulkload.py demandera des informations de connexion pour l'application. Lors de l'authentification, il va vider les entités dans le fichier spécifié.

  4. Pour restaurer l'utilisation commande suivante

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

    Pour les informations d'identification locales, utilisez l'administrateur d'e-mail et le mot de passe vide. Même pour le datastore local HRD, utilisez plain appid (s ~ appid restaure les données mais les entités ne sont pas accessibles dans Development Console - Viewerore.Je ne sais pas pourquoi)

    Dump peut être restauré à la même appid ou même à différents appid