source: publico/il.spdo/trunk/il/spdo/saconfig.py @ 5453

Última Alteração nesse arquivo desde 5453 foi 5453, incluída por fabianosantos, 9 anos atrás

Criado session extension do sqlalchemy que junta as funcionalidades do mecanismo de transacao do zope com o controle de versao das tabelas do banco de dados. Isso ficou um espetaculo e inacreditavelmente simples.

File size: 1.2 KB
Linha 
1from zope.component import provideUtility, queryAdapter
2from zope.app.component.hooks import getSite
3from zope.component.interfaces import ComponentLookupError
4from z3c.saconfig.interfaces import IScopedSession, IEngineFactory
5from z3c.saconfig import GloballyScopedSession, EngineFactory
6from collective.saconnect.interfaces import ISQLAlchemyConnectionStrings
7from il.spdo.config import DEFAULT_DSN
8from il.spdo.history_meta import ZopeVersionedExtension
9
10SessionUtility = GloballyScopedSession(u'spdo_engine', extension=ZopeVersionedExtension)
11provideUtility(SessionUtility, provides=IScopedSession, name=u'spdo_session')
12
13class SPDOEngineFactory(EngineFactory):
14
15    def configuration(self):
16        #TODO:fazer logging da conexao usada.
17        try:
18            saconnect = ISQLAlchemyConnectionStrings(getSite())
19            dsn = saconnect['spdo']
20            print 'SAConnect engine config'
21        except (ComponentLookupError, KeyError), e:
22            print 'Fallback engine config: ' + str(e)
23            dsn = DEFAULT_DSN #fallback to default DSN
24
25        return (dsn,),{}
26
27#registra um engine global de fallback
28SPDOGlobalEngine = EngineFactory(DEFAULT_DSN)
29provideUtility(SPDOGlobalEngine, provides=IEngineFactory, name=u'spdo_engine')
30
Note: Veja TracBrowser para ajuda no uso do navegador do trac.
 

The contents and data of this website are published under license:
Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual.