Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 谷歌应用引擎永远需要索引器_Python_Google App Engine - Fatal编程技术网

Python 谷歌应用引擎永远需要索引器

Python 谷歌应用引擎永远需要索引器,python,google-app-engine,Python,Google App Engine,几小时前,我在GAE部署并运行了我的应用程序。它仍然失败,因为它需要对某些数据存储项进行排序,而GAE仍然没有生成该项所需的索引。因此,在.order()这一点上,它向我抛出了一个needIndexer。这要花多长时间 我过去一直在为10个GAE应用程序执行相同的过程,据我记忆所及,从来没有这么慢过。(好的,一直很慢…) 旧控制台中的“数据存储索引”页面只是说“您尚未为此应用程序创建索引” 新的控制台什么也没说。它只是显示一个“蓝色警报”,好像我还没有等死。警报中的消息是: 云数据存储查询由

几小时前,我在GAE部署并运行了我的应用程序。它仍然失败,因为它需要对某些数据存储项进行排序,而GAE仍然没有生成该项所需的索引。因此,在
.order()
这一点上,它向我抛出了一个needIndexer。这要花多长时间

我过去一直在为10个GAE应用程序执行相同的过程,据我记忆所及,从来没有这么慢过。(好的,一直很慢…)

  • 旧控制台中的“数据存储索引”页面只是说“您尚未为此应用程序创建索引”
  • 新的控制台什么也没说。它只是显示一个“蓝色警报”,好像我还没有等死。警报中的消息是:
云数据存储查询由索引、可伸缩数据提供支持 随着属性值的更改而实时更新的结构。 项目的数据存储索引配置指定了它所使用的索引 需要支持其查询。云数据存储根据需要构建新索引 部署索引配置时需要。你可以检查一下准备好的 使用此控制台的应用程序索引状态

(开玩笑)

我该怎么办

更新:

以下是index.yaml:

indexes:

# AUTOGENERATED

- kind: Mjquizinfo
  ancestor: yes
  properties:
  - name: version
    direction: desc
FWIW,在某些情况下(例如,多模块应用程序),用于部署应用程序代码的普通
appcfg.py更新可能不会更新
index.yaml
文件


尝试使用
appcfg.py update\u index
-您应该能够立即在开发人员控制台中看到索引信息(执行索引并生效可能还需要一段时间).

我要做的是为需要新索引的实体创建一个游标查询,加载并保存每个实体,从而为现有实体创建索引。如果索引是复合索引,则应检查该索引是否部署在正确的索引配置文件中。这可能很简单。我把它贴在了我的问题上。据我所知,当你定义一个新的索引时,只有新的实体的属性才会被索引。旧实体不受影响。但是错误不应该是这样的。代码中的排序顺序是否与定义的索引(asc vs.desc)相同?是的,是相同的。这是一个新项目的另一个应用程序B,但与应用程序a的代码完全相同,应用程序a已经运行了6个多月。顺序相同(-for desc)。三个小时后仍然没有任何回应。今天我不得不放弃。它将在明天神奇地发挥作用……这不是第一次一夜好睡可以解决应用程序引擎的问题:-)12个小时后,仍然无法启动,而且这似乎效果很好-说索引现在至少在“准备”中可见。在GAE工作了2年多,我以前从未这样做过。谢谢FWIW,我不再使用appcfg.py进行部署,我通常从git存储库进行部署。那里的工作流程可能在索引方面发生了一些变化,几秒钟后就进入了“服务”阶段。你成就了我的一天。如果你有很多数据,需要一段时间。也许你以前的项目没有。