How to check if DataStore Indexes are being served on AppEngine?

How can I check if datastore Indexes as defined in index.yaml are serving in the python code?

I am using Python 1.3.6 AppEngine SDK.

1
задан GeekTantra 25 August 2010 в 02:32
поделиться

2 ответа

Попытка выполнить запрос, требующий этого индекса. Если он вызывает NeedIndexError, он не загружен или еще не обслуживается.

2
ответ дан 2 September 2019 в 21:53
поделиться

Я не не думаю, что есть способ проверить, не добавляя журнал в код SDK. Если вы используете заглушку SQLite, __FindIndexForQuery, строки 1114–1140, — это часть, которая ищет подходящие индексы для запроса и (в строке 1140), возвращает и Цитирую:

Объект entity_pb.CompositeIndex PB, если подходящий индекс существует; в противном случае None

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

Если вы можете объяснить, почему вы хотите это знать, я думаю, это было бы вполне разумно чтобы открыть запрос функции в трекере App Engine, попросив Google добавить журнал, который я предлагаю, чтобы вам не нужно было поддерживать отредактированную версию файла!

(Если вы используете файл-заглушку, соответствующий файл находится здесь, а часть для инструментов находится в строке 824 и далее; конечно, эта часть будет использоваться только в том случае, если вы используете SDK в режиме «требовать индексы», также известный как «строгий режим», в противном случае индексы создаются в, а не используются , SDK;-)

0
ответ дан 2 September 2019 в 21:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: