BadRequestError:app s~myapphr无法访问app dev~myapphr的数据。为什么?

时间:2012-02-14 16:36:36

标签: google-app-engine app-engine-ndb

我正在使用Python 2.7运行时与来自Google App Engine上的1.6.2 SDK的NDB。

我收到以下错误:

BadRequestError:app s~myapphr无法访问app dev~myapphr的数据

源自此代码:

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

我正在从dev.myapp.appspot.com访问我的应用程序,该应用程序是别名的myapphr。 device_id是在相同的dev.myapphr版本上创建的。

发生了什么事?

2 个答案:

答案 0 :(得分:3)

dev服务器的默认default_partition为“dev”,在生产时,HRD应用程序会获得“s”的分区。如果在开发服务器上创建urlsafe密钥并将其存储为字符串,则它将无法在具有不同分区的生产服务器上运行。使密钥可移植的方法是将它们保存在ndb上db或KeyProperty的ReferenceProperty中。

答案 1 :(得分:3)

您在那里看到的前缀(“s~”和“dev~”)称为分区。您可以使用dev_appserver.py的--default_partition标志将前缀从“dev~”更改为“s~”。