BadRequestError:应用程序 s~myapphr 无法访问应用程序 dev~myapphr 的数据。为什么?
我正在 Google App Engine 上使用来自 1.6.2 SDK 的 Python 2.7 运行时和 NDB。
我收到以下错误:
BadRequestError:app s~myapphr 无法访问应用程序 dev~myapphr 的数据
源自此代码:
device = model.Key(urlsafe=device_id).get()
我正在从别名为 myapphr 的 dev.myapp.appspot.com 访问我的应用程序。 device_id 是在同一 dev.myapphr 版本上创建的。
到底是怎么回事?
I am using the Python 2.7 runtime with NDB from the 1.6.2 SDK on Google App Engine.
I get the following error:
BadRequestError: app s~myapphr cannot access app dev~myapphr's data
Originating from this code:
device = model.Key(urlsafe=device_id).get()
I am accessing my app from dev.myapp.appspot.com that is aliased to myapphr. device_id was created on the same dev.myapphr version.
What is going on?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
开发服务器的默认 default_partition 为“dev”,在生产环境中,HRD 应用程序获得的分区为“s”。如果您在开发服务器上创建 urlsafe 密钥并将其存储为字符串,则它将无法在具有不同分区的生产服务器上工作。使密钥可移植的方法是将它们保存在带有 db 的 ReferenceProperty 或 ndb 上的 KeyProperty 中。
the dev server has a default default_partition of 'dev' and on production, HRD apps get a partition of 's'. If you create a urlsafe key on the dev server and store it as a string it will not work on a the production server with a different partition. the way to make keys portable is to save them in a ReferenceProperty with db or KeyProperty on ndb.
您在那里看到的前缀(“s~”和“dev~”)称为分区。您可以使用 dev_appserver.py 的 --default_partition 标志将前缀从“dev~”更改为“s~”。
The prefix you see there ("s~" and "dev~") is called a partition. You can use the --default_partition flag for dev_appserver.py to change the prefix from "dev~" to "s~".