Conjunto de mudanças 5453 no repositório publico


Ignorar:
Timestamp:
29/10/2011 23:22:43 (8 anos atrás)
Autor:
fabianosantos
Mensagem:

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.

Localização:
il.spdo/trunk/il/spdo
Arquivos:
3 editados

Legenda:

Não Modificado
Adicionado
Removido
  • il.spdo/trunk/il/spdo/config.py

    r5411 r5453  
    22import zope.i18nmessageid
    33
    4 DEFAULT_DSN='mysql://root:interlegis@localhost/spdo_devel?charset=utf8'
     4DEFAULT_DSN = 'mysql://root:interlegis@localhost/spdo_devel?charset=utf8'
    55TABLE_ARGS = {'mysql_engine':'InnoDB','mysql_charset':'utf8'}
    66CREATE_ALL_TABLES = True
    7 CREATE_SAMPLES=True
    8 PATH_ANEXOS='/var/interlegis/spdo/anexos'
     7CREATE_SAMPLES = True
     8PATH_ANEXOS = '/var/interlegis/spdo/anexos'
    99
    1010def Session():
  • il.spdo/trunk/il/spdo/history_meta.py

    r5452 r5453  
     1# -*- coding: utf-8 -*-
     2
     3# Baseado em https://bitbucket.org/sqlalchemy/sqlalchemy/src/de4eb56fb6c8/examples/versioning/history_meta.py
     4# Mais informações em http://www.sqlalchemy.org/docs/orm/examples.html?highlight=version#versioned-objects
     5
    16from sqlalchemy.ext.declarative import DeclarativeMeta
    27from sqlalchemy.orm import mapper, class_mapper, attributes, object_mapper
     
    510from sqlalchemy.orm.interfaces import SessionExtension
    611from sqlalchemy.orm.properties import RelationshipProperty
     12from zope.sqlalchemy.datamanager import ZopeTransactionExtension
    713
    814def col_references_table(col, table):
     
    176182        for obj in versioned_objects(session.deleted):
    177183            create_version(obj, session, deleted = True)
     184
     185class ZopeVersionedExtension(ZopeTransactionExtension, VersionedListener):
     186    pass
     187
  • il.spdo/trunk/il/spdo/saconfig.py

    r5382 r5453  
    22from zope.app.component.hooks import getSite
    33from zope.component.interfaces import ComponentLookupError
    4 
    54from z3c.saconfig.interfaces import IScopedSession, IEngineFactory
    65from z3c.saconfig import GloballyScopedSession, EngineFactory
    7 
    86from collective.saconnect.interfaces import ISQLAlchemyConnectionStrings
    97from il.spdo.config import DEFAULT_DSN
     8from il.spdo.history_meta import ZopeVersionedExtension
    109
    11 SessionUtility = GloballyScopedSession(u'spdo_engine')
     10SessionUtility = GloballyScopedSession(u'spdo_engine', extension=ZopeVersionedExtension)
    1211provideUtility(SessionUtility, provides=IScopedSession, name=u'spdo_session')
    1312
     
    2928SPDOGlobalEngine = EngineFactory(DEFAULT_DSN)
    3029provideUtility(SPDOGlobalEngine, provides=IEngineFactory, name=u'spdo_engine')
     30
Note: Veja TracChangeset para ajuda no uso do visualizador de conjunto de mudanças.
 

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