Macの場合はコチラ

前々から気になっていたんですが、app engine の管理画面の Datasotre Indexesで確認すると、過去に色々と動かした名残で、既に存在しないEntityのインデックスがいっぱい残っています。

特に気にしていなかったんですが、こんなエラーでアプリケーションが動かなくなりました。

com.google.appengine.api.datastore.DatastoreNeedIndexException: no matching index found

で、古いインデックスを消したいんですが、app engineの管理画面では出来ません。

でもPython版のSDKには、Indexを削除するツールがあるようです。

まずはPython.org の Downloadから、python-2.6.5.msi をダウンロードしてインストールします。

そして、Project Hosting on Google Code の Downloadsから、Google App Engine Python SDK – Windows Installer 1.3.5 ダウンロードしてインストールします。

下記手順を実行します。

デスクトップ上の「Google App Engine Launcher」を起動

メニュ[file]→[Create New Application]

起動したダイアログ画面

[Application Name]:[現在のappid](1)

[Parent Directory]:[任意のフォルダーを指定](2)

→[Create]ボタンクリック

(2)で指定したフォルダーに(1)のフォルダが作成されます

app.yaml/index.yamlなどのファイルが存在する事を確認して下さい。

・vacuum_indexesの実行

以下のコマンドを実行して下さい。

[Google App Engine SDKインストールフォルダー]\appcfg.py vacuum_indexes

[(2)+(1)フォルダ]

~中略~

・コマンド実行後

1.メールアドレス・パスワードの入力(入力が求められると思います。)

2.その後、Index削除確認が表示されますので [y]を選択して下さい。

java版のGAE でindexを作成したところ、[Error]となる – Google-App-Engine-Japan | Google グループ

意外と簡単でした。

上記の手順を行った後に app engine の管理画面の [Datastore Indexes] を見ると、軒並み

Index が [Deleting] になっていました。

こんな便利なの、なんでJava版には無いんだろう。

BulkLoaderマダー?(・∀・)っ/凵⌒☆チンチン