PostgreSQL: ¿cómo ejecutar VACUUM desde el código fuera del bloque de transacción?

Estoy usando Python con psycopg2 y estoy tratando de ejecutar un completoVACUUM Después de una operación diaria que inserta varios miles de filas. El problema es que cuando intento ejecutar elVACUUM comando dentro de mi código me sale el siguiente error:

<code>psycopg2.InternalError: VACUUM cannot run inside a transaction block
</code>

¿Cómo ejecuto esto desde el código fuera de un bloque de transacción?

Si hace una diferencia, tengo una clase de abstracción de base de datos simple, un subconjunto de los cuales se muestra a continuación para el contexto (no ejecutable, manejo de excepciones y cadenas de documentos omitidas y ajustes de separación de líneas realizados):

<code>class db(object):
    def __init__(dbname, host, port, user, password):
        self.conn = psycopg2.connect("dbname=%s host=%s port=%s \
                                      user=%s password=%s" \
                                      % (dbname, host, port, user, password))

        self.cursor = self.conn.cursor()

    def _doQuery(self, query):
        self.cursor.execute(query)
        self.conn.commit()

    def vacuum(self):
        query = "VACUUM FULL"
        self._doQuery(query)
</code>

Respuestas a la pregunta(6)

Su respuesta a la pregunta