2017-01-03 9 views
2

私はGAEゲストブックのデモアプリケーションに苦労しています。私はNO変更をしました。私はそれをローカルで実行しましたが、私はそれを展開するときに、私は次のエラーを取得する:GAEデータストアインデックスが作成されない

com.google.appengine.api.datastore.DatastoreNeedIndexException: no matching index found. recommended index is: 
- kind: Greeting 
    ancestor: yes 
    properties: 
    - name: date 
    direction: desc 

The suggested index for this query is: 
    <datastore-index kind="Greeting" ancestor="true" source="manual"> 
     <property name="date" direction="desc"/> 
    </datastore-index> 

ローカルで実行する場合、データストア・インデックス・auto.xmlがターゲット/で生成された - SNAPSHOT/WEB-INF/appengine生成のディレクトリ。このファイルには、必要なインデックスの説明が正確に記載されています。

<datastore-indexes> 
    <!-- Used 1 time in query history --> 
    <datastore-index kind="Greeting" ancestor="true"> 
    <property name="date" direction="desc" /> 
    </datastore-index> 
</datastore-indexes> 

ただし、上記のエラーはアプリで発生します。

また、自動生成されたxmlファイルから手動のxml(datastore-indexes.xml)ファイルに移動しようとしました。私はデータストア>インデックスの下で確認したときに

... 
[INFO] GCLOUD: Jan 02, 2017 8:01:14 PM com.google.apphosting.utils.config.IndexesXmlReader readConfigXml 
[INFO] GCLOUD: INFO: Successfully processed /Users/stephanhofmann/Projects/mvntestapp/target/mvntestapp-1.0-SNAPSHOT/WEB-INF/datastore-indexes.xml 
[INFO] GCLOUD: Jan 02, 2017 8:01:14 PM com.google.apphosting.utils.config.IndexesXmlReader readConfigXml 
[INFO] GCLOUD: INFO: Successfully processed /Users/stephanhofmann/Projects/mvntestapp/target/mvntestapp-1.0-SNAPSHOT/WEB-INF/appengine-generated/datastore-indexes-auto.xml 
... 

とにかく、Googleのデベロッパーコンソールでは、任意の「コンポジット」インデックスを表示しません:私はmvn -e appengine:deploy経由で展開するとき

は、私は、エラーや警告を取得していません。私は30分以上待った(そしてデータがないので、インデックス作成は速くなければならない)。

複合インデックスで、ここに表示する必要がありますが、アプリケーションにインデックスがないとわからないとわかりません。

ご迷惑をおかけして申し訳ありません。

+0

私は全く同じ問題があります。あなたは解決策を見つけましたか? –

+0

ここで同じ問題があります。誰にも解決策がありますか? – DFB

+0

私はこの問題を解決し、私の解決策を掲載しました。 – DFB

答えて

0

実行: のgcloudアプリは、端末ウィンドウで/Users/stephanhofmann/Projects/mvntestapp/target/mvntestapp-1.0-SNAPSHOT/index.yaml

を配備は、索引を定義します。

1

mvn appengine:deployを使用した場合、私は同じ問題に直面していました。そして、インデックスを生成するために明示的にmvn appengine:deployIndexを使用しなければならないことに気付きました。それは他人を助けることを望む。

+0

gradleを使用しています:gradlew appengineDeployIndexが私のために働いていました。ありがとうございました – foolioJones