Python 如何检查AppEngine上是否提供了数据存储索引?

Python 如何检查AppEngine上是否提供了数据存储索引?,python,google-app-engine,Python,Google App Engine,如何检查index.yaml中定义的数据存储索引是否在python代码中提供服务 我正在使用Python1.3.6 AppEngine SDK。我认为,如果不在SDK代码中添加一些日志记录,就无法进行检查。如果您正在使用,\u FindIndexForQuery,第1114-1140行是查找查询适用索引的部分,并且(在第1140行)返回,我引用: 实体_pb.CompositeIndex pb,如果是 存在合适的指标;否则没有 在这一点上进行一点日志记录(当循环耗尽后即将结束时——这就是它如何返

如何检查index.yaml中定义的数据存储索引是否在python代码中提供服务


我正在使用Python1.3.6 AppEngine SDK。

我认为,如果不在SDK代码中添加一些日志记录,就无法进行检查。如果您正在使用,
\u FindIndexForQuery
,第1114-1140行是查找查询适用索引的部分,并且(在第1140行)返回,我引用:

实体_pb.CompositeIndex pb,如果是 存在合适的指标;否则没有

在这一点上进行一点日志记录(当循环耗尽后即将结束时——这就是它如何返回None)将为您提供实际使用的所有索引的跟踪,当然,这些索引是日志的一部分。它返回的协议缓冲区是中定义的类的实例,从第2576行开始

如果你能解释为什么你想知道这一点,我认为,在App Engine tracker上打开一个功能请求,要求Google添加我建议的日志记录,这样你就不必继续维护你编辑过的文件版本了


(如果使用文件存根,则相关文件为,要插入仪器的部分在第824行和后面;当然,只有在“需要索引”模式(也称为“严格模式”)下运行SDK时,才会使用此部分;否则,索引是在SDK中创建的,而不是由SDK使用;-)

尝试执行需要该索引的查询。如果它引发了NeedIndexer,则它未上载或尚未提供服务。

是否没有其他AppEngine API调用可以为我提供当前提供的所有索引?当前没有,没有。您为什么需要它们?因为索引延迟会导致应用程序数小时无法使用。在这种情况下,上述捕获NeedIndexer的解决方案有什么问题?您甚至不需要显式地执行示例查询,只要在常规查询抛出时捕获该错误即可。如果新版本引入了新索引,而这些索引尚未生成,则可以延迟将其作为默认版本。