Облачное хранилище данных ndb записывает в пространство имен по умолчанию

При попытке перейти с python2 на python3 возникла проблема с записью данных в разные пространства имен.

Код писался для исправления пространств имен до 14 мая 2020 года. После этого при попытке записи в определенное пространство имен он пишет в пространство имен по умолчанию. Как это решить?

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()

person Krishna Vaddepalli    schedule 18.05.2020    source источник


Ответы (1)


Я начал сталкиваться с этой проблемой сегодня утром при развертывании своего экземпляра в облаке. Это не происходило в моей среде разработки. Мои объекты сохранялись в пространстве имен [по умолчанию], несмотря на то, что они были установлены в модели. Я решил эту проблему, понизив версию google-cloud-ndb с версии «1.2.1» до версии «1.1.2».

person jeffgamedev    schedule 18.05.2020
comment
Это было полезно и решило проблему. Спасибо - person Krishna Vaddepalli; 02.07.2020