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