Google app engine BadRequestError:app s~myapphr无法访问app dev~myapphr';s数据。为什么?

Google app engine BadRequestError:app s~myapphr无法访问app dev~myapphr';s数据。为什么?,google-app-engine,app-engine-ndb,Google App Engine,App Engine Ndb,我正在使用Python 2.7运行时和来自Google App Engine上1.6.2 SDK的NDB 我得到以下错误: BadRequestError:应用程序s~myapphr无法访问应用程序开发人员~myapphr的数据 源自此代码: device = model.Key(urlsafe=device_id).get() 我正在从dev.myapp.appspot.com访问我的应用程序,该应用程序别名为myapphr。设备id是在同一dev.myapphr版本上创建的 发生了什么?开

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

我得到以下错误:

BadRequestError:应用程序s~myapphr无法访问应用程序开发人员~myapphr的数据

源自此代码:

device = model.Key(urlsafe=device_id).get()
我正在从dev.myapp.appspot.com访问我的应用程序,该应用程序别名为myapphr。设备id是在同一dev.myapphr版本上创建的


发生了什么?

开发服务器的默认分区为“dev”,而在生产环境中,HRD应用程序的分区为“s”。如果在dev服务器上创建一个urlsafe密钥并将其存储为字符串,那么它将无法在具有不同分区的生产服务器上工作。使密钥可移植的方法是将它们保存在ndb上带有db或KeyProperty的ReferenceProperty中。

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

多谢各位。让我困惑的是,我在生产环境中调用了我的开发版本dev,并认为这与此有关。另外请注意,如果使用GoogleAppEngineLauncher,您可以在右键单击菜单中的“信息…”中设置默认分区。请注意,这是。