1

我只是被我的功能测试所困扰,没有使用与我的 dev_appserver 相同的设置。我目前使用 require_indexes 运行我的 dev_appserver(非 rel)。

如何强制我的测试台使用相同的设置?

我尝试过使用SetupIndexes,但它没有“要求”在我的 index.yaml 中定义它们。我的设置不正确,因此我可以做任何我想做的查询。

IE

clz.testbed = Testbed()
clz.testbed.activate()
clz.testbed.init_memcache_stub()
clz.testbed.init_taskqueue_stub()
clz.testbed.init_urlfetch_stub()
clz.testbed.init_datastore_v3_stub(use_sqlite=True, datastore_file=somepath)
SetupIndexes('','')

model.objects().filter(x=1, y=2.....) #will work regardless of index defined.

但是当查询在服务器上执行时,我得到了

NeedIndexError:此查询需要未定义的复合索引。您必须更新应用程序根目录中的 index.yaml 文件。以下索引是所需的最低索引:

4

1 回答 1

3

尝试将 { "require_indexes" : True } 作为关键字参数添加到 init_datastore_v3_stub()

您可以查看(并单步执行)SDK 代码,以了解该参数最终是如何传递到数据存储存根的。

于 2012-07-24T03:07:25.447 回答