sqlite数据存储区和index.yaml

时间:2011-08-16 05:48:14

标签: google-app-engine google-cloud-datastore

我正在从原始的基于文件的数据存储区迁移到sqlite版本。

我有一个命令行脚本,它按如下方式初始化存根:

from google.appengine.api import apiproxy_stub_map
from google.appengine.datastore.datastore_sqlite_stub import DatastoreSqliteStub

apiproxy_stub_map.apiproxy=apiproxy_stub_map.APIProxyStubMap()
apiproxy_stub_map.apiproxy.RegisterStub("datastore_v3", DatastoreSqliteStub("myapp", Datastore, "/"))

查询数据存储区会引发NeedIndexError;然而 -

  • 相关索引定义在index.yaml
  • 中正盯着我
  • 访问旧的基于文件的数据存储区[使用DatastoreFileStub]没有问题

我是否在某种程度上无法使用index.yaml初始化数据存储区?

1 个答案:

答案 0 :(得分:0)

构造函数参数DatastoreSqliteStub采用的是:

           app_id,
           datastore_file,
           require_indexes=False,
           verbose=False,
           service_name='datastore_v3',
           trusted=False,
           consistency_policy=None

通过提供这些命名参数,您指定应用程序ID(正确),数据存储文件,您指定的是一个名为Datastore的对象,以及是否需要索引(您是设置为'/',其值为True)。相反,只需指定第一个和第三个参数。