さらに検索した後、psycopg2接続オブジェクトのisolation_levelプロパティを発見しました。これを0
に変更するとわかります トランザクションブロックから移動します。上記のクラスのバキュームメソッドを次のように変更すると、問題が解決します。また、念のために分離レベルを以前のレベルに戻したことにも注意してください(1
のようです)。 デフォルト)。
def vacuum(self):
old_isolation_level = self.conn.isolation_level
self.conn.set_isolation_level(0)
query = "VACUUM FULL"
self._doQuery(query)
self.conn.set_isolation_level(old_isolation_level)
この記事 (そのページの終わり近く)は、このコンテキストでの分離レベルの簡単な説明を提供します。