— Это 2 строчки из документации гугла, на 1.2.6 они не работают ни на localhost'e, ни на сервере. Точную ошибку не помню, но в ней сообщалось, у global_stat не существует переменной bytes. Завтра потестирую в 1.2.7 на сервере, может быть оно заработало, а на localhost'e ограничение…
Да, я видел это в sdk, когда начал копаться… Потом еще пытался сделать прямой запрос в бд через gqlQuery, но безуспешно :)
А база у вас уже была наполнена?
Да. На пустой не пробывал. Однако даже если учесть, что стата пересчитывается каждые 24 часа, даже в этом случае bytes должна быть равна NULL или INT64(0) — в трактовке ProtocoBuffers, ибо модель так устроена, она что-то да вернет, т.к. поле определено.
Я попробую сегодня попозже на пустых базах, если вдруг ошибка — отпишу.
Как-то не нахожу я ошибки…
Вот что в итоге получается:
stats.GlobalStat.all() возвращает google.appengine.ext.db.Query
Однако, stats.GlobalStat.all().get() возвращает None…
Собственно, код мало чем отличается от примера в документации:
from google.appengine.ext import webapp
from google.appengine.ext.db import stats
Собственно, на локальном сервере статистика не сохраняется.
from google.appengine.ext import db
query = db.GqlQuery(«SELECT * FROM __Stat_Kind__»)
print query.count()
В консоли из админки выдал мне нолик…
А запрос из админки GAE, на их сервере выдал мне нужную информацию.
Да, вы правы, я на локали не тестил. Сейчас посмотрел diff между 1.2.5 и 1.2.7 — код, отвечающий на локали за базы не изменился, посему ответом на запрос будет действительно null, ибо отдавать нечего. Решение — проверять, что это локаль, и писать ошибку/не делать запрос.
У AppEngine вообще на самом деле проблемы с QOS, но вроде ситуация меняется (в 1.2.6 начали отслеживать доступность сервисов datastore и memcache, однако не применяют результаты проверки в коде пока), я запощу issue и завтра в чате скажу разработчикам.
App Engine SDK 1.2.7 — Bugfix Release для Python