2010年5月11日火曜日

Google App Engineのインデックスの削除方法

Google App Engine for Java ではインデックスの削除はできません。
しかし、Google App Engine for Python を使えば、Javaで作ったAppであってもインデックス更新・削除が可能です。

1.Google App Engine for Python の環境構築を参考にPython環境を構築する。
2.ダミーのPythonアプリケーションを作成する。
3.appcfg.pyユーティリティを使ってインデックスを削除・更新する。


1.は上記リンク先参照




2.UTF-8で次の3つのファイルを作成し、1つのフォルダに保存する。
app.yaml
application: JavaアプリケーションのアプリケーションID
Javaversion: 1
runtime: python
api_version: 1


handlers:
- url: /.*
  script: hello_world.py


hello_world.py
print 'Content-Type: text/plain' 
print '' 
print 'Hello, world!'


index.yaml
シングルプロパティのインデックスは追加不要。追加するとappcfg.pyを実行する時にエラーになる。
indexes:

- kind: テーブル名
  ancestor: no
  properties:
  - name: 列名
    direction: desc
  - name: 列名



3.cmdで以下のいずれかのコマンドを実行する。
インデックスを更新する場合はindex.yamlに記載されているインデックスが更新される。(インデックスが存在しない場合に作成される。)
インデックスを削除する場合はindex.yamlに記載のないインデックスが1つずつ削除するか確認があるのでy/nで答える。シングルプロパティ インデックスも削除するか聞かれるのでnと答える。



rem インデックス更新
cd C:\Program Files\Google\google_appengine
appcfg.py update_indexes "2で保存したフォルダのフルパス"



rem 不要インデックス削除

cd C:\Program Files\Google\google_appengine
appcfg.py vacuum_indexes "2で保存したフォルダのフルパス"






Python アプリケーションのアップロードと管理
http://code.google.com/intl/ja/appengine/docs/python/tools/uploadinganapp.html

0 件のコメント:

コメントを投稿