def drop_all(): from trytond.backend import Database database = Database().connect() cursor = database.cursor() erase_cursor = database.cursor(autocommit=True) for db in database.list(cursor): print "Dropping database %s" % db database.drop(erase_cursor, db) erase_cursor.close() cursor.close()
def drop(database_name, password): security.check_super(password) Database(database_name).close() # Sleep to let connections close time.sleep(1) logger = logging.getLogger('database') database = Database().connect() cursor = database.cursor(autocommit=True) try: try: database.drop(cursor, database_name) cursor.commit() except Exception: logger.error('DROP DB: %s failed' % (database_name,)) tb_s = ''.join(traceback.format_exception(*sys.exc_info())) logger.error('Exception in call: \n' + tb_s) raise else: logger.info('DROP DB: %s' % (database_name)) Pool.stop(database_name) finally: cursor.close(close=True) return True