Faster App Engine Разработка Datastore Альтернатива - PullRequest
9 голосов
/ 22 января 2010

Есть ли способ использовать реальную базу данных (SQLite, Mysql или даже какую-нибудь нереляционную) в качестве хранилища данных для разработки вместо предоставленного хранилища памяти / файла.

Я видел несколько проектов, GAE-SQLite (кажется, не работает) и один совет о доступе к производственному хранилищу данных с помощью удаленного API (все еще довольно медленно для больших наборов данных).

Ответы [ 3 ]

4 голосов
/ 22 января 2010

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)

Но если вы ищете действительно более быструю разработку (как я), хранилище данных на самом деле не проблема, а однопоточный веб-сервер. Я пытался заменить его порождением , но это было слишком сложно. Вы также можете попытаться настроить TyphoonAE , который будет имитировать стек приложения с открытыми альтернативами.

Имейте в виду, что если вы сделаете что-либо из этого, вы можете потерять некоторые из характеристик, которые обеспечивают текущие инструменты, что означает, что при развертывании вы можете получить результаты, которых вы не ожидали. Другими словами; убедитесь, что вы знаете, что делаете: -)

2 голосов
/ 27 января 2011

Google App Engine SDK для Python теперь включает поддержку SQLite. См. официальные документы для получения дополнительной информации.

1 голос
/ 22 января 2010

bdbdatastore - это альтернативный сервер хранилища данных, который значительно лучше встроенного в сервер разработки, хотя хранилище данных далеко не единственная проблема с сервером dev, когда речь идет об обработке больших приложений.

...