BadRequestError: приложение ~myapphr не может получить доступ к данным приложения ~myapphr. Зачем?

Я использую среду исполнения Python 2.7 с NDB из 1.6.2 SDK на Google App Engine.

Я получаю следующую ошибку:

BadRequestError: приложения ~myapphr не могут получить доступ к данным приложения ~myapphr

Исходя из этого кода:

device = model.Key(urlsafe=device_id).get()

Я получаю доступ к своему приложению с dev.myapp.appspot.com, которое имеет псевдоним myapphr. device_id был создан в той же версии dev.myapphr.

Что здесь происходит?

2 ответа

Решение

У сервера dev по умолчанию default_partition 'dev', а на производстве приложения HRD получают раздел 's'. Если вы создадите ключ urlsafe на сервере dev и сохраните его как строку, он не будет работать на производственном сервере с другим разделом. способ сделать ключи переносимыми - сохранить их в ReferenceProperty с помощью db или KeyProperty на ndb.

Префикс, который вы видите там ("s~" и "dev~"), называется разделом. Вы можете использовать флаг --default_partition для dev_appserver.py, чтобы изменить префикс с "dev ~" на "s~".

Другие вопросы по тегам