2010-12-17 9 views
20

最近、AppEngineのデータストア管理が有効になりました。データを別のアプリにコピーする方法に関する説明がわかりません。AppEngineのデータストア管理:別のアプリケーション機能へのコピー

注:ターゲットアプリケーションが remote_apiのを有効にする必要があり、その HTTP_X_APPENGINE_INBOUND_APPIDリストに このアプリケーションのIDを含める必要があります。

警告このアプリケーションのデータは 書き込み可能です。 がコピーされたデータが読み取り専用の場合、 整合コピーを保証することができます。注:ブロブ (バイナリデータ)はコピーされません。私はHTTP_X_APPENGINE_INBOUND_APPIDが何であるか見当がつかない、とGoogleの検索は、何の結果....任意のアイデアを得ない

builtins: 
    - remote_api: on 

はremote_apiのを可能にするために、私はapp.yamlをに次のように含まれ? alt text alt text

+0

その機能に関する参照リンクはありますか? – systempuntoout

+0

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

答えて

7

現在、データストアのコピー機能は、Pythonアプリケーションでのみ使用できます。

は、JavaのためのGAEを使用している場合は、次のステップ実行する必要があります。

注:あなたがexample2.appspot.comをアプリケーションにアプリexample1.appspot.comからコピーしていると、あなたのJava WEB-INF appフォルダが/Users/admin/src/main/webapp/WEB-INF

  1. に位置していると仮定すると、 Python SDKをダウンロードする https://developers.google.com/appengine/downloads#Google_App_Engine_SDK_for_Python
  2. Python SDKを実行する
  3. 新しいファイルを作成するWEB-INFフォルダ:appengine_config.py
  4. (ターミナルで実行)新しいバージョンの展開:app.yaml
  5. はあなたWEB-INFフォルダ内に新しいファイルを作成し、あなたのexample1データストアの管理ビューにappcfg.py -A example2 update **/Users/admin/src/main/webapp/WEB-INF
  6. 移動して、置く: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

Python SDKを使用する必要がありますか、またはファイル(app.yamlとappengine_config.py)をアップロードすることはできますか私はEclipseからプロジェクトを展開していますか? – JohnIdol

+0

@Tiago Fernandesあなたは私の日を救う。ありがとう。 :) 'GAE'がpythin2.7を使用しているので、' app.yaml'を更新する必要があります。 – Bishan

+0

これはより良い、より完全な答えです。ありがとうございました! – Jabberwockey

2

は、Javaを使用して、すでにthisを試してみましたが、その作業をしていない場合は(私は同じ問題を抱えていた)私が追加:web.xmlおよび更新中

<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> 

をこのコマンドで:appcfg.py -A appid update/yourappfolder/war/WEB-INF

奇妙なことに、私はそれがうまくいった。

0

GAE for Javaを使用している場合は、answerの手順を実行する必要があります。

GAEはPython 2.7を使用します。したがって、以下のようにapp.yamlを作成する必要があります。

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


builtins: 
- remote_api: on 

datastore_adminツールではなく、あなたのapp.yamlで組み込みを可能にする管理コンソールを介して有効にする必要があります。

+0

彼はおそらく今までにそれを見つけ出したのだろうか... – codermaster

関連する問題