我正在使用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版本上创建的。
发生了什么事?
答案 0 :(得分:3)
dev服务器的默认default_partition为“dev”,在生产时,HRD应用程序会获得“s”的分区。如果在开发服务器上创建urlsafe密钥并将其存储为字符串,则它将无法在具有不同分区的生产服务器上运行。使密钥可移植的方法是将它们保存在ndb上db或KeyProperty的ReferenceProperty中。
答案 1 :(得分:3)
您在那里看到的前缀(“s~”和“dev~”)称为分区。您可以使用dev_appserver.py的--default_partition标志将前缀从“dev~”更改为“s~”。