更快的App Engine开发数据存储替代方案

时间:2010-01-21 21:12:08

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

是否有办法使用真实数据库(SQLite,Mysql,甚至某些非关系数据库)作为开发数据存储,而不是提供的内存/文件数据存储。

我看到很少的项目,GAE-SQLite(似乎没有工作)以及使用远程api访问生产数据存储区的一个提示(对于大型数据集来说仍然很慢)。

3 个答案:

答案 0 :(得分:4)

MongoDB非常适用于此。你需要:

代码:

import datastore_mongo_stub

os.environ['APPLICATION_ID'] = 'test'

datastore = datastore_mongo_stub.DatastoreMongoStub(
    os.environ['APPLICATION_ID'], 'woot', '', require_indexes=False)

apiproxy_stub_map.apiproxy.RegisterStub('datastore_v3', datastore)

但是,如果您正在寻找真正更快的开发(就像我一样),数据存储实际上并不是单线程Web服务器的问题。 I tried to replace it with spawning但这有点太难了。您还可以尝试设置TyphoonAE,它将使用开放替代方案模拟appengine堆栈。

请注意,如果您执行其中任何操作,可能会丢失当前工具提供的某些确切行为,这意味着如果部署,您可能会得到您没想到的结果。换一种说法;确保你知道你在做什么: - )

答案 1 :(得分:2)

Google App Engine SDK for Python现在捆绑了对SQLite的支持。有关详细信息,请参阅official docs

答案 2 :(得分:1)

bdbdatastore是一个替代数据存储区后端,它比开发服务器内置的更好,尽管在处理大型应用程序时,数据存储区远不是开发服务器的唯一问题。