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>