From: Frederic Massart Date: Tue, 4 Dec 2012 09:31:51 +0000 (+0800) Subject: Avoid transactions when dropping databases X-Git-Tag: v0.2~13 X-Git-Url: https://git.cameron1729.xyz/?a=commitdiff_plain;h=2a297026f31599b7648a442f8b7d6bd0448d2dc6;p=mdk.git Avoid transactions when dropping databases --- diff --git a/lib/db.py b/lib/db.py index 330209a..1bf51d3 100644 --- a/lib/db.py +++ b/lib/db.py @@ -117,11 +117,23 @@ class DB(object): def dropdb(self, db): + try: + # Disable transaction on PostgreSQL. + old_isolation_level = self.conn.isolation_level + self.conn.set_isolation_level(0) + except: + pass + if self.engine == 'mysqli': self.cur.execute('DROP DATABASE `%s`' % db) elif self.engine == 'pgsql': self.cur.execute('DROP DATABASE "%s"' % db) + try: + self.conn.set_isolation_level(old_isolation_level) + except: + pass + def dump(self, fd, prefix=''): """Dump a database to the file descriptor passed"""