PostgreSQL - как запустить VACUUM из кода вне блока транзакций?

Я использую Python с psycopg2 и пытаюсь запустить полныйVACUUM после ежедневной операции, которая вставляет несколько тысяч строк. Проблема в том, что когда я пытаюсь запуститьVACUUM Команда в моем коде я получаю следующую ошибку:

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

Как мне запустить это из кода вне блока транзакции?

Если это имеет значение, у меня есть простой класс абстракции БД, подмножество которого показано ниже для контекста (не запускается, обработка исключений и строки документации опущены, а также сделаны настройки переноса строк):

<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>

Ответы на вопрос(5)

Ваш ответ на вопрос