Files
@ ca41d544dbdf
Branch filter:
Location: kallithea/pylons_app/model/meta.py - annotation
ca41d544dbdf
1.7 KiB
text/x-python
Merge with 6aa7db1c083a1384ebff5c2bb3c943a035bb310d - celery branch
564e40829f80 564e40829f80 564e40829f80 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 564e40829f80 564e40829f80 564e40829f80 564e40829f80 564e40829f80 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 564e40829f80 564e40829f80 564e40829f80 564e40829f80 564e40829f80 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 7afbc45aab28 | """SQLAlchemy Metadata and Session object"""
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import scoped_session, sessionmaker
from pylons_app.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_dir = jn(dn(dn(dn(abspath(__file__)))), 'data', 'cache')
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"))
|