Revision 985b9b09 snf-pithos-backend/pithos/backends/lib/sqlalchemy/dbwrapper.py

b/snf-pithos-backend/pithos/backends/lib/sqlalchemy/dbwrapper.py
33 33

  
34 34
from sqlalchemy import create_engine
35 35
#from sqlalchemy.event import listen
36
from sqlalchemy.engine import Engine
37
from sqlalchemy.pool import NullPool, QueuePool
36
from sqlalchemy.pool import NullPool
38 37
from sqlalchemy.interfaces import PoolListener
39 38

  
40 39

  
......
45 44
        if db.startswith('sqlite://'):
46 45
            class ForeignKeysListener(PoolListener):
47 46
                def connect(self, dbapi_con, con_record):
48
                    db_cursor = dbapi_con.execute('pragma foreign_keys=ON;')
49
                    db_cursor = dbapi_con.execute(
50
                        'pragma case_sensitive_like=ON;')
51
            self.engine = create_engine(db, connect_args={'check_same_thread': False}, poolclass=NullPool, listeners=[ForeignKeysListener()])
47
                    dbapi_con.execute('pragma foreign_keys=ON;')
48
                    dbapi_con.execute('pragma case_sensitive_like=ON;')
49
            self.engine = create_engine(
50
                db, connect_args={'check_same_thread': False},
51
                poolclass=NullPool, listeners=[ForeignKeysListener()],
52
                isolation_level='SERIALIZABLE')
52 53
        #elif db.startswith('mysql://'):
53 54
        #    db = '%s?charset=utf8&use_unicode=0' %db
54 55
        #    self.engine = create_engine(db, convert_unicode=True)
55 56
        else:
56 57
            #self.engine = create_engine(db, pool_size=0, max_overflow=-1)
57
            self.engine = create_engine(db, poolclass=NullPool)
58
            self.engine = create_engine(
59
                db, poolclass=NullPool, isolation_level='READ COMMITTED'
60
        )
58 61
        self.engine.echo = False
59 62
        self.engine.echo_pool = False
60 63
        self.conn = self.engine.connect()

Also available in: Unified diff