2010-01-21 8 views
9

¿Existe alguna manera de utilizar una base de datos real (SQLite, Mysql o incluso no relacional) como almacén de datos para el desarrollo, en lugar de la memoria/almacén de datos de archivos que se proporciona.Más rápido App Engine Development Datastore Alternativa

Vi algunos proyectos, GAE-SQLite (no parecía estar funcionando) y un consejo sobre el acceso al almacén de datos de producción usando api remoto (aún bastante lento para grandes conjuntos de datos).

+1

¿Por qué? ¿Qué ventaja ganarías? –

+3

Desarrollo más fácil, el almacén de datos de desarrollo incluido con SDK es demasiado lento para experimentar incluso con más de unos pocos cientos de entidades. –

+1

Además de mi respuesta a continuación, no experimenté las ralentizaciones significativas que menciona con muchas entidades. –

Respuesta

4

MongoDB funciona muy bien para eso. Se necesita:

código:

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) 

Pero si Estoy buscando un desarrollo verdaderamente más rápido (como lo era) el almacén de datos no es realmente el problema tanto s el servidor web de un solo hilo. I tried to replace it with spawning pero eso fue un poco difícil. También puede intentar configurar TyphoonAE que imitará la pila appengine con alternativas abiertas.

Tenga en cuenta que si hace alguno de estos, puede perder algo del comportamiento exacto que proporcionan las herramientas actuales, lo que significa que si implementa puede obtener resultados que no esperaba. En otras palabras; asegúrese de saber lo que está haciendo :-)

+0

Koen gracias, eso es lo más parecido a lo que estaba buscando. Desafortunadamente la consola de administración es inútil ya que la introspección de esquema no está implementada. Estoy buscando una herramienta de interfaz gráfica que pueda usar para ver datos al menos. –

+0

Bien, entonces algunos otros indicadores. Hay un tipo que comenzó un código auxiliar de SQLite: http://blog.appenginefan.com/search/label/SQLite. No estoy seguro si alguna vez lo terminó, pero quizás pueda hacer que funcione. Debe haber suficientes navegadores GUI para SQLLite. Pero tenga en cuenta que el modelo de datos no es muy fácil de navegar ya que imita una tienda de valores-clave. Por otra parte, he hecho una descarga de appengine desarrollo y nunca realmente necesitaba el dat un navegador, pero tal vez eso es algo de estilo. Buena suerte :-) –

+0

Ah, y pensando en ello, el navegador de datos en realidad debería funcionar con cualquier trozo, ya que utiliza la API normal del almacén de datos.Entonces, si no funciona de la caja, no debería ser difícil de arreglar. –

1

bdbdatastore es un servidor de almacenamiento de datos alternativo que es considerablemente mejor que el servidor de desarrollo integrado, aunque el almacén de datos está lejos de ser el único problema con el servidor de desarrollo cuando se trata de manejar aplicaciones grandes.

+0

desafortunadamente está bastante desactualizado, traté de aplicar el parche a SDK 1.3 pero el parche es bastante grande para se arregla sin entender todo el código subyacente. –

2

El SDK de Google App Engine para Python ahora incluye soporte para SQLite. Vea el official docs para más información.

Cuestiones relacionadas