2010-01-21 6 views
9

Gibt es eine Möglichkeit, eine echte Datenbank (SQLite, Mysql oder sogar einige nicht-relationale) als Datenspeicher für die Entwicklung anstelle von Speicher/Datei-Datenspeicher zu verwenden.Schnellere App Engine-Entwicklungsdatenspeicher Alternative

Ich sah einige Projekte, GAE-SQLite (schien nicht zu funktionieren) und einen Tipp über den Zugriff auf Produktionsdatenspeicher mit Remote-API (immer noch ziemlich langsam für große Datensätze).

+1

Warum? Welchen Vorteil würden Sie gewinnen? –

+3

Einfachere Entwicklung, der mit SDK ausgelieferte Entwicklungsdatenspeicher ist zu langsam, um selbst mit mehr als ein paar hundert Entitäten zu experimentieren. –

+1

Abgesehen von meiner Antwort unten, habe ich die signifikanten Verlangsamungen, die Sie mit vielen Entitäten erwähnen, nicht erlebt. –

Antwort

4

MongoDB funktioniert gut dafür. Sie benötigen:

Code:

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) 

Aber wenn Sie bin auf der Suche nach wirklich schneller Entwicklung (wie ich war) der Datenspeicher ist eigentlich nicht das Problem, so viel ich s der Single-Thread-Webserver. I tried to replace it with spawning aber das war ein bisschen zu schwer. Sie könnten auch versuchen, TyphoonAE einzurichten, die den appengine Stapel mit geöffneten Alternativen nachahmt.

Beachten Sie, dass Sie möglicherweise etwas von dem genauen Verhalten verlieren, das die aktuellen Tools bieten, wenn Sie einen dieser Schritte ausführen. Das bedeutet, dass Sie bei der Bereitstellung möglicherweise Ergebnisse erzielen, die Sie nicht erwartet haben. Mit anderen Worten; stellen Sie sicher, dass Sie wissen, was Sie tun :-)

+0

Koen danke, das ist das, was ich gesucht habe.Dadler Konsole ist nutzlos, da Schema Introspektion nicht implementiert ist.Ich suche ein GUI-Tool, das ich verwenden kann, um zu sehen Daten mindestens –

+0

Ok, dann ein paar andere Hinweise. Es gibt einen Typen, der einen SQLite-Stub gestartet hat: http://blog.appenginefan.com/search/label/SQLite. Ich bin sicher, wenn er es jemals beendet hat, aber vielleicht können Sie es zur Arbeit bringen.Es sollte genügend GUI-Browser für SQLLite geben.Beachten Sie jedoch, dass das Datenmodell nicht sehr durchsuchbar ist, da es einen Schlüssel-Wert-Speicher nachahmt.Auch dann habe ich eine Menge Appengine getan Entwicklung und brauchte nie wirklich das dat ein Browser, aber vielleicht ist das eine Stilsache. Viel Glück :-) –

+0

Oh, und darüber nachdenken, sollte der Datenbrowser tatsächlich mit jedem Stub arbeiten, da es den normalen Datenspeicher API verwendet.Wenn es nicht funktioniert, sollte es nicht schwer sein, es zu reparieren. –

1

bdbdatastore ist ein alternatives Datenspeicher-Backend, das erheblich besser ist als das im Entwicklungsserver integrierte, obwohl der Datenspeicher bei der Verarbeitung großer Anwendungen bei weitem nicht das einzige Problem mit dem Dev-Server ist.

+0

Leider ist es ziemlich veraltet, ich habe versucht, den Patch auf SDK 1.3 anzuwenden, aber der Patch ist ziemlich groß behoben werden, ohne den gesamten zugrunde liegenden Code zu verstehen –

2

Das Google App Engine-SDK für Python bündelt jetzt die Unterstützung für SQLite. Weitere Informationen finden Sie unter official docs.

Verwandte Themen