Ich arbeite an einer Google App Engine-Anwendung in Python. Ich habe versucht, eine Abfrage, die ich für eine meiner Routen ausgeführt habe, so zu ändern, dass nur eine Eigenschaft statt 2 abgefragt wird. Dies führte dazu, dass bei jeder Abfrage ein Indexierungsfehler auftrat.BadValueError: Entität hat nicht initialisierte Eigenschaften ___ nach dem Zurücksetzen von Indizes und Löschen von Memcache
Es war etwas in der Art von "Kein Index, der zu den angegebenen Parametern passt", aber im Moment habe ich keine Screenshots. Um die Situation zu bereinigen, haben wir appcfg.py vacuum_indices ausgeführt und alle mit der ursprünglichen Suche verbundenen Indizes gelöscht. Wir haben dann einen neuen index.yaml hochgeladen, der den neuen Index angibt. Obwohl wir sehen konnten, dass die neuen Indizes tatsächlich im Admin-Panel erstellt wurden und die alten weg waren, erhielten wir immer noch denselben Fehler.
Wir sind uns nicht sicher, warum das so ist, und haben Probleme, online Dokumentationen zu diesen Problemen zu finden. Unser nächster Gedanke war, dass ein früherer Zustand in Memcache dazu führte, dass die Abfrage versuchte, den alten Index zu verwenden. So gespült wir memcache, und jetzt sind wir diesen Fehler:
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1535, in __call__
rv = self.handle_exception(request, response, e)
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1529, in __call__
rv = self.router.dispatch(request, response)
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1278, in default_dispatcher
return route.handler_adapter(request, response)
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 1102, in __call__
return handler.dispatch()
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 572, in dispatch
return self.handle_exception(e, self.app.debug)
File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2/webapp2.py", line 570, in dispatch
return method(*args, **kwargs)
File "/base/data/home/apps/s~dev-erpetcloud2/dev1.392600188150722624/routes/users.py", line 172, in post
res_dict = cp_user.to_dict()
File "/base/data/home/apps/s~dev-erpetcloud2/dev1.392600188150722624/routes/models/../models/cp_models.py", line 248, in to_dict
animal_dict = animal.to_dict()
File "/base/data/home/apps/s~dev-erpetcloud2/dev1.392600188150722624/routes/models/../models/cp_models.py", line 574, in to_dict
protocol, params = self.get_protocol_and_params()
File "/base/data/home/apps/s~dev-erpetcloud2/dev1.392600188150722624/routes/models/../models/cp_models.py", line 395, in get_protocol_and_params
record = self.protocol_state_key.get()
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/ndb/key.py", line 572, in get
return self.get_async(**ctx_options).get_result()
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/ndb/tasklets.py", line 342, in get_result
self.check_success()
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/ndb/tasklets.py", line 389, in _help_tasklet_along
value = gen.send(val)
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/ndb/context.py", line 765, in get
pbs = entity._to_pb(set_key=False).SerializePartialToString()
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/ndb/model.py", line 3158, in _to_pb
self._check_initialized()
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/ext/ndb/model.py", line 3014, in _check_initialized
'Entity has uninitialized properties: %s' % ', '.join(baddies))
BadValueError: Entity has uninitialized properties: title
Blick durch den Datenspeicher, das Unternehmen, dass diese Spur Verweise auf jeden Fall haben einen ‚Titel‘ Eigentum.
Ich habe mich schon lange nach Fehlern erkundigt, die beim Löschen von Indizes und dem Löschen von Memcache auftreten können, und nichts Nützliches ist aufgetaucht.
Wenn jemand mir vielleicht ein wenig Einblick geben könnte, was hier passieren könnte und wie diese Systeme funktionieren (mein mentales Modell wäre vielleicht ausgeschaltet), oder mich in die richtige Richtung weisen, wäre das fantastisch. Vielen Dank!!
Das ist die Sache, wir haben diese Entity-Definition nicht geändert. In der Tat ging ich selbst durch den Datenspeicher, um sicherzustellen, dass das, was es herauszuholen versuchte, tatsächlich diese Eigenschaft hatte. – bgenchel
Okay, in welchem Szenario sehen Sie diesen Fehler? Können Sie außerdem bestätigen, dass die Eigenschaft 'title' immer als 'required' (Pflicht) angegeben und nicht immer geändert wurde? – mng
Ich kann nicht bestätigen, dass ich jedoch bestätigen kann, dass die Daten, die es zu erhalten versucht, ein Titelfeld haben und dass dieses Feld initialisiert wird. – bgenchel