Mercurial > kallithea
view rhodecode/model/meta.py @ 553:65c27fd21769
small fixes for distutils
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 06 Oct 2010 18:02:46 +0200 |
parents | 342f8434ed14 |
children | 0a48c1ec04fc c1c1cf772337 |
line wrap: on
line source
"""SQLAlchemy Metadata and Session object""" from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import scoped_session, sessionmaker from rhodecode.model import caching_query from beaker import cache import os from os.path import join as jn, dirname as dn, abspath import time # Beaker CacheManager. A home base for cache configurations. cache_manager = cache.CacheManager() __all__ = ['Base', 'Session'] # # SQLAlchemy session manager. Updated by model.init_model() # Session = scoped_session( sessionmaker( query_cls=caching_query.query_callable(cache_manager) ) ) # The declarative Base Base = declarative_base() #For another db... #Base2 = declarative_base() #=============================================================================== # CACHE OPTIONS #=============================================================================== cache_base = jn(dn(dn(dn(abspath(__file__)))), 'data') cache_dir = jn(cache_base, 'cache') if not os.path.isdir(cache_base): os.mkdir(cache_base) if not os.path.isdir(cache_dir): os.mkdir(cache_dir) # set start_time to current time # to re-cache everything # upon application startup start_time = time.time() # configure the "sqlalchemy" cache region. cache_manager.regions['sql_cache_short'] = { 'type':'memory', 'data_dir':cache_dir, 'expire':10, 'start_time':start_time } cache_manager.regions['sql_cache_med'] = { 'type':'memory', 'data_dir':cache_dir, 'expire':360, 'start_time':start_time } cache_manager.regions['sql_cache_long'] = { 'type':'file', 'data_dir':cache_dir, 'expire':3600, 'start_time':start_time } #to use cache use this in query #.options(FromCache("sqlalchemy_cache_type", "cachekey"))