2010-12-17 8 views
20

Niedawno włączyłem Admin Datastore AppEngine. Nie rozumiem instrukcji kopiowania moich danych do innej aplikacji.W jaki sposób używać Datastore Admin AppEngine: Kopiuj do innej funkcji aplikacji

Uwaga: Aplikacja docelowa musi umożliwić remote_api i musi zawierać identyfikator tej aplikacji w swoim HTTP_X_APPENGINE_INBOUND_APPID listy.

OSTRZEŻENIE Dane tej aplikacji to zapisywalny. Możemy zagwarantować tylko spójną kopię , gdy kopiowane dane są tylko do odczytu. Uwaga: Bloby (dane binarne) nie będą kopiowane.

Aby włączyć remote_api mam włączone następujące w app.yaml:

builtins: 
    - remote_api: on 

nie mam pojęcia, co HTTP_X_APPENGINE_INBOUND_APPID jest, a wyszukiwarka Google daje żadnych wyników .... jakieś pomysły? alt text alt text

+0

jakiś związek odniesienia o tej funkcji? – systempuntoout

+0

http://code.google.com/appengine/docs/python/datastore/creatinggettinganddeletingdata.html#Deleting_Entities_in_Bulk –

Odpowiedz

7

Funkcja kopiowania danych jest obecnie dostępna tylko dla aplikacji w języku Python.

Jeśli używasz GAE Java należy wykonać następujące kroki:

Uwagi: Zakładając, że kopiujesz z aplikacji example1.appspot.com do app example2.appspot.com a Java WEB-INF aplikacja Folder znajduje się w /Users/admin/src/main/webapp/WEB-INF

  1. Pobierz Python SDK https://developers.google.com/appengine/downloads#Google_App_Engine_SDK_for_Python
  2. Uruchom Python SDK
  3. Utwórz nowy plik w swoim WEB-INF folderu: app.yaml
  4. Tworzenie nowego pliku wewnątrz folderu WEB-INF: appengine_config.py
  5. wdrożyć nową wersję (Uruchom w terminalu): appcfg.py -A example2 update **/Users/admin/src/main/webapp/WEB-INF
  6. przejdź do example1 magazynu danych widzenia administratora i umieścić: datastore-admin.example2.appspot.com/_ah/remote_api

app.yaml:

application: example2 
version: datastore-admin 
runtime: python 
api_version: 1 


builtins: 
- remote_api: on 
- datastore_admin: on 

appengin e_config.py:

remoteapi_CUSTOM_ENVIRONMENT_AUTHENTICATION = (
    'HTTP_X_APPENGINE_INBOUND_APPID', ['example1']) 
+0

Czy muszę używać SDK Pythona czy mogę tylko przesyłać pliki (app.yaml i appengine_config.py) przy Wdrażam swój projekt od zaćmienia? – JohnIdol

+0

@ Santiago Fernandes Uratujesz mój dzień. Dzięki. :) od 'GAE' teraz używać pythin2.7,' app.yaml' powinny być aktualizowane. – Bishan

+0

To jest lepsza, pełniejsza odpowiedź. Dziękuję Ci! – Jabberwockey

2

Jeśli używasz Java i już próbował this i jej nie działa (miałem ten sam problem) I dodaje:

<servlet> 
    <display-name>Remote API Servlet</display-name> 
    <servlet-name>RemoteApiServlet</servlet-name> 
    <servletclass>com.google.apphosting.utils.remoteapi.RemoteApiServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>RemoteApiServlet</servlet-name> 
    <url-pattern>/remote_api</url-pattern> 
</servlet-mapping> 

w web.xml i aktualizacji z tym poleceniem : appcfg.py -A appid update/yourappfolder/war/WEB-INF

Dziwne, ale po tym zadziałało.

0

Jeśli używasz GAE Java należy wykonać czynności opisane w tym answer.

GAE teraz użyć Python 2.7. Musisz więc stworzyć swoją app.yaml jak poniżej.

application: example2 
version: datastore-admin 
runtime: python27 
api_version: 1 
threadsafe: true 


builtins: 
- remote_api: on 

Narzędzie datastore_admin powinny umożliwić pośrednictwem konsoli administracyjnej zamiast umożliwienia polecenie wbudowane w app.yaml.

+0

On probbebly ma to figuerd się już ... – codermaster

Powiązane problemy