Mercurial > kallithea
changeset 1665:36f77a46f291 beta
Added cache options to some db getters
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 11 Nov 2011 18:45:48 +0200 |
parents | 65386911df2a |
children | a404060706c0 |
files | rhodecode/model/db.py |
diffstat | 1 files changed, 16 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/model/db.py Fri Nov 11 18:16:14 2011 +0200 +++ b/rhodecode/model/db.py Fri Nov 11 18:45:48 2011 +0200 @@ -305,15 +305,25 @@ return self.__class__.__name__ @classmethod - def get_by_username(cls, username, case_insensitive=False): + def get_by_username(cls, username, case_insensitive=False, cache=False): if case_insensitive: - return Session.query(cls).filter(cls.username.ilike(username)).scalar() + q = cls.query().filter(cls.username.ilike(username)) else: - return Session.query(cls).filter(cls.username == username).scalar() + q = cls.query().filter(cls.username == username) + + if cache: + q = q.options(FromCache("sql_cache_short", + "get_user_%s" % username)) + return q.scalar() @classmethod - def get_by_api_key(cls, api_key): - return cls.query().filter(cls.api_key == api_key).one() + def get_by_api_key(cls, api_key, cache=False): + q = cls.query().filter(cls.api_key == api_key) + + if cache: + q = q.options(FromCache("sql_cache_short", + "get_api_key_%s" % api_key)) + q.one() def update_lastlogin(self): """Update user lastlogin""" @@ -1083,6 +1093,7 @@ Session.add(inv_obj) Session.commit() + class DbMigrateVersion(Base, BaseModel): __tablename__ = 'db_migrate_version' __table_args__ = {'extend_existing':True}