##// END OF EJS Templates
fix(caching): fixed problems with Cache query for users....
fix(caching): fixed problems with Cache query for users. The old way of querying caused the user get query to be always cached, and returning old results even in 2fa forms. The new limited query doesn't cache the user object resolving issues

File last commit:

r5042:4c5af799 default
r5365:ae8a165b default
Show More
114_version_4_28_0.py
54 lines | 1.4 KiB | text/x-python | PythonLexer
dbmigrate: python3 changes...
r5042
db: added index to cache_args column for feaster lookup on cache invalidation
r4830
import logging
from sqlalchemy import *
from sqlalchemy.engine import reflection
from alembic.migration import MigrationContext
from alembic.operations import Operations
from rhodecode.lib.dbmigrate.versions import _reset_base
from rhodecode.model import meta, init_model_encryption
log = logging.getLogger(__name__)
def _get_indexes_list(migrate_engine, table_name):
inspector = reflection.Inspector.from_engine(migrate_engine)
return inspector.get_indexes(table_name)
def upgrade(migrate_engine):
"""
Upgrade operations go here.
Don't create your own engine; bind migrate_engine to your metadata
"""
_reset_base(migrate_engine)
from rhodecode.lib.dbmigrate.schema import db_4_20_0_0
init_model_encryption(db_4_20_0_0)
# make sure we re-create api-keys indexes
context = MigrationContext.configure(migrate_engine.connect())
op = Operations(context)
existing_indexes = _get_indexes_list(
migrate_engine, db_4_20_0_0.CacheKey.__tablename__)
names = [idx['name'] for idx in existing_indexes]
with op.batch_alter_table(db_4_20_0_0.CacheKey.__tablename__) as batch_op:
if 'cache_args_idx' not in names:
batch_op.create_index(
'cache_args_idx', ['cache_args'])
def downgrade(migrate_engine):
meta = MetaData()
meta.bind = migrate_engine
def fixups(models, _SESSION):
pass