ndb cloud datastore записва в пространството на имената по подразбиране

При опит за надграждане от 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