121 # connect on the dbms system base to create our base |
121 # connect on the dbms system base to create our base |
122 cnx = system_source_cnx(source, True, special_privs=special_privs, |
122 cnx = system_source_cnx(source, True, special_privs=special_privs, |
123 interactive=interactive) |
123 interactive=interactive) |
124 # disable autocommit (isolation_level(1)) because DROP and |
124 # disable autocommit (isolation_level(1)) because DROP and |
125 # CREATE DATABASE can't be executed in a transaction |
125 # CREATE DATABASE can't be executed in a transaction |
126 try: |
126 set_isolation_level = getattr(cnx, 'set_isolation_level', None) |
127 cnx.set_isolation_level(0) |
127 if set_isolation_level is not None: |
128 except AttributeError: |
|
129 # set_isolation_level() is psycopg specific |
128 # set_isolation_level() is psycopg specific |
130 pass |
129 set_isolation_level(0) |
131 return cnx |
130 return cnx |
132 |
131 |
133 def repo_cnx(config): |
132 def repo_cnx(config): |
134 """return a in-memory repository and a db api connection it""" |
133 """return a in-memory repository and a db api connection it""" |
135 from cubicweb.dbapi import in_memory_repo_cnx |
134 from cubicweb.dbapi import in_memory_repo_cnx |