未创建GAE数据存储区索引

时间:2017-01-03 04:23:50

标签: java google-app-engine datastore

我正在努力使用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>

在本地运行时,在目标/ - SNAPSHOT / WEB-INF / appengine生成的目录中生成了datastore-indexes-auto.xml。该文件包含所需的索引描述:

<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)文件。

当我通过mvn -e appengine:deploy部署时,我没有收到任何错误或警告:

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

无论如何,当我在Datastore&gt;下查看时,Google Developer Console不会显示任何“复合”索引。指标。我等了30多分钟(并且没有数据,所以索引应该很快)。

不确定它是否是复合索引并且应该显示在这里,但是应用程序缺少索引并且我被卡住了。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

使用mvn appengine:deploy时遇到了同样的问题。然后我意识到我必须明确地使用mvn appengine:deployIndex来生成索引。希望能帮助他人。

答案 1 :(得分:0)

运行: gcloud app deploy /Users/stephanhofmann/Projects/mvntestapp/target/mvntestapp-1.0-SNAPSHOT/index.yaml

在终端窗口中将定义索引。