我有以下错误:
412找不到匹配的索引。建议索引是:
- 种类:monthly_report
属性:
- 名称:belongs_to
- 名称:date_added
我正在使用Python 3.5,数据存储区和远程Django项目,该项目通过google-cloud API访问数据存储区(google-cloud == 0.24.0)。
我运行了命令:
google cloud datastore cleanup-indexes index.yaml
google cloud datastore create-indexes index.yaml
创建索引:
index.yaml中:
indexes:
- kind: history
ancestor: no
properties:
- name: date_added
direction: asc
- name: address
direction: asc
- kind: payment
ancestor: no
properties:
- name: date_added
direction: asc
- name: belongs_to
- name: order
- kind: monthly_report
ancestor: no
properties:
- name: date_added
direction: asc
- name: status
- name: belongs_to
direction: asc
我使用payment
和date_added
上的过滤器对种类belongs_to
进行查询。它有效。
但是,在同一方法中,我使用monthly_report
和date_added
上的过滤器对种类belongs to
进行查询,我收到上述错误。
问题是什么?
更新
如果我过滤了一个可以使用的名称,那么对于多个名称,它不会。
答案 0 :(得分:0)
每当您进行涉及您使用的所有过滤器的查询时,Google应用引擎的数据存储区都会自动创建索引。它将您的表数据存储在该索引中,以便快速提供。因此,无论何时部署,您都要更新新索引。
如果您正在使用appcfg部署,那么,
appcfg.py -A <project-name> update_indexes .
此处.
是index.yaml
文件的路径。
每当您没有找到匹配的索引或NeedIndexError
或缺少索引错误时,错误也会显示缺少哪个索引。因此,您只需将建议的索引放入index.yaml
文件中,并使用上面的命令更新索引。
在这种情况下,请将此缺失的索引添加到index.yaml
文件。
- kind: monthly_report
properties:
- name: belongs_to
- name: date_added
我希望这会有所帮助。有关详细信息Datastore Indices
答案 1 :(得分:0)
似乎订单很重要,所以我改变了这个:
- kind: monthly_report
properties:
- name: belongs_to
- name: date_added
到此:
- kind: monthly_report
properties:
- name: date_added
- name: belongs_to