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~".