ndb 云数据存储写入默认命名空间
ndb cloud datastore writes to default namespace
尝试从 python2 升级到 python3 时,将数据写入不同的命名空间时出现问题。
2020 年 5 月 14 日之前,代码一直在写入以更正命名空间。之后,当尝试写入特定命名空间时,它会写入默认命名空间。如何解决?
from google.cloud import ndb
client = ndb.Client()
class ActiveTokens(ndb.Model):
_memcache_timeout = 60
namespace = user_namespace
username = ndb.StringProperty(required=True, indexed=True)
token = ndb.StringProperty(required=True, indexed=True)
expiry = ndb.IntegerProperty(required=True)
otp = ndb.IntegerProperty(indexed=True)
created = ndb.DateTimeProperty(auto_now_add=True, required=True, indexed=True)
edited = ndb.DateTimeProperty(auto_now=True, required=True)
@classmethod
def store(cls, username, token, expiry, otp):
with client.context():
obj = ActiveTokens(username=username,
token=token,
expiry=expiry,
otp=otp,
namespace='user'
)
return obj.put().id()
我今天早上将我的实例部署到云时开始遇到这个问题。它没有发生在我的开发环境中。尽管在模型中进行了设置,但我的实体仍在 [default] 命名空间下保存。我通过将 google-cloud-ndb 从版本“1.2.1”降级到版本“1.1.2”解决了这个问题。
尝试从 python2 升级到 python3 时,将数据写入不同的命名空间时出现问题。
2020 年 5 月 14 日之前,代码一直在写入以更正命名空间。之后,当尝试写入特定命名空间时,它会写入默认命名空间。如何解决?
from google.cloud import ndb
client = ndb.Client()
class ActiveTokens(ndb.Model):
_memcache_timeout = 60
namespace = user_namespace
username = ndb.StringProperty(required=True, indexed=True)
token = ndb.StringProperty(required=True, indexed=True)
expiry = ndb.IntegerProperty(required=True)
otp = ndb.IntegerProperty(indexed=True)
created = ndb.DateTimeProperty(auto_now_add=True, required=True, indexed=True)
edited = ndb.DateTimeProperty(auto_now=True, required=True)
@classmethod
def store(cls, username, token, expiry, otp):
with client.context():
obj = ActiveTokens(username=username,
token=token,
expiry=expiry,
otp=otp,
namespace='user'
)
return obj.put().id()
我今天早上将我的实例部署到云时开始遇到这个问题。它没有发生在我的开发环境中。尽管在模型中进行了设置,但我的实体仍在 [default] 命名空间下保存。我通过将 google-cloud-ndb 从版本“1.2.1”降级到版本“1.1.2”解决了这个问题。