log

解決 GAE com.google.appengine.api.datastore.DatastoreNeedIndexException?

GAEのproduction環境にdeployしたら、下記のようなエラーが起こってしまった。

	/xxxxxx
	com.google.appengine.api.datastore.DatastoreNeedIndexException: no matching index found.
	The suggested index for this query is:
	    <datastore-index kind="tttttt" ancestor="false" source="manual">
		<property name="yyyyyyyy" direction="asc"/>
		<property name="zzzzzzzzz" direction="asc"/>
		<property name="aaaaaaaaaa" direction="asc"/>
	    </datastore-index>

slim3を使ってて、

クエリとインデックス - Slim3 日本語サイト(非公式) <https://sites.google.com/site/slim3documentja/documents/slim3-datastore/queries-and-indexes#TOC--11>

に書いてある方法で解決した。

開発サーバーを使用するとインデックスの設定が簡単になります。
というのも、開発サーバーは対応するインデックスがないクエリが実行された場合に、
クエリの実行を失敗させるのではなく、クエリを実行できるようにインデックスの設定を生成することができるからです。

つまりは、一度ローカル環境でWEBアプリとして走らせると、slim3が勝手にインデックス用のXMLを作って、それをdeployしてくれるようだ。

今回のエラーが起きたのは一度プロジェクトをcleanして、それをそのままdeployしたのが原因かもしれない。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-12-20 (木) 00:01:24 (2316d)