2010-03-02 12 views
11

Wie erfolgt die GAE/J-Datenspeichersicherung am einfachsten?GAE/J-Datenspeichersicherung

Es sieht so aus, als ob es python bulkloader.py Werkzeug gibt, um Backup für Python-Anwendungen zu machen, aber was soll ich tun, um Java-App zu sichern? Gibt es eine Möglichkeit, Python-Tool zu verwenden?

Antwort

16

Es ist möglich, das Python-Tool bulkloader.py zu verwenden, um eine Datenspeichersicherung der GAE-Java-App zu erstellen. Sie müssen nur remote_api einrichten, indem Sie folgende Zeilen in web.xml hinzu:

<?xml version="1.0" encoding="utf-8"?> 
<web-app> 
    <!-- Add this to your web.xml to enable remote API on Java. --> 
    <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> 
    <security-constraint> 
    <web-resource-collection> 
     <web-resource-name>remoteapi</web-resource-name> 
     <url-pattern>/remote_api</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>admin</role-name> 
    </auth-constraint> 
    </security-constraint> 
</web-app> 

Danach können Sie mit --dump verwenden bulkloader.py können Backup herunterladen und mit --restore Backup-Datenspeicher zu laden.

+3

Der Sicherheitsbeschränkungsteil kann nun sicher entfernt werden (AppEngine 1.4.3), da das Servlet selbst jetzt auch diese Prüfung durchführt –

+0

Dies ist keine gültige Lösung mit HR-Datenspeicher: "Wenn Sie versuchen, Daten herunterzuladen, werden Sie sehen Ein high_replication_warning-Fehler in der Admin-Konsole. Die heruntergeladenen Daten enthalten möglicherweise keine kürzlich gespeicherten Entitäten. " –

+0

Bitte lesen Sie [Hier] (http://StackOverflow.com/a/12458521/1328880) für Schritte erforderlich, um RemoteApiServlet – Maithilish

1

einfach einrichten remote_api für Ihre Anwendung der Anweisungen here mit - vor allem der Spitze:

Tipp: Wenn Sie eine Java-Anwendung, können Sie das Python bulkloader.py Tool von die Java-Installation Version des remote_api-Handlers, der mit der Java-Laufzeitumgebung enthalten ist. Die Handler-Servlet-Klasse lautet com.google.apphosting.utils.remoteapi.RemoteApiServlet.

Verwenden Sie dann den Python-Massenlader mit --dump oder --restore.

+0

kann --dump inkrementelle Downloads bulkloader? – Thilo

+1

Nein. Derzeit gibt es keine generische Vorgehensweise für inkrementelle Downloads, da App Engine keine Gesamtbestellung über Entitäten bereitstellt. –

2

Oder, wenn Sie können, können Sie warten auf die Datenspeicher-Backup-Restore-Funktion in GAE kommenden Versionen wie in der Roadmap gesehen.

+0

immer noch darauf warten :) –